码迷,mamicode.com
首页 > 数据库 > 详细

spark 从数据库中读取数据

时间:2021-01-27 13:56:39      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:prope   数据库名   密码   name   select   statement   manager   cal   sel   

spark 从数据库中读取数据的几种方式,以Mysql 为例

创建spark

val spark = SparkSession.builer().appName("用户标签").master("local[*]").getOrCreate()
val url = "jdbc:mysql://数据库地址/数据库名"
val driver = "mysql 数据库驱动”
val tableName = "表名"
val user = "数据库用户名"
val password = "数据库密码"

方式一: 直连

val df: DataFrame = spark.read.format("jdbc").options(Map(
      "url" -> url,
      "driver" -> driver
      "dbtable" -> tableName,
      "user"-> user,
      "password" -> password
      )).load()

方式二: 直连,执行指定sql

val sql = "select id, username from tableName"
val df: DataFrame = spark.read.format("jdbc").options(Map(
      "url" -> url,
      "driver" -> driver
      "dbtable" -> sql,
      "user"-> user,
      "password" -> password
      )).load()

方式三:使用jdbc 的properties

val prop = new Properties()
prop.setProperty("user", user)
prop.setProperty("password", password)
val df: DataFrame = spark.read.jdbc(url, tableName, prop)

方式四:传统的数据库驱动,查询结果是ResultSet 类型

try{
      Class.forName(driver)
var conn: Connection = DriverManager.getConnection(url, user, password)
val statement = conn.createStatement()
val res = statement.executeQuery(select * from tableName)
}

方式五:hive 数据库,与spark 天然结合(需要配置hive 作为数据源)

spark.sql("select * from tableName)

spark 从数据库中读取数据

标签:prope   数据库名   密码   name   select   statement   manager   cal   sel   

原文地址:https://www.cnblogs.com/xujuan/p/14332384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!