微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spark 从数据库中读取数据

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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐