Spark 2.x读写MySQL

作者: Liam666 | 来源:发表于2018-12-25 23:57 被阅读2次

简介

从 spark 2.0 开始,我们可以使用DataFrameReader 和 DataFrameWriter来读写MySQL。

SparkSession.read 返回 DataFrameReader.
Dataset.write 返回 DataFrameWriter.

煮几个栗子

其中spark是SparkSession

read example

val prop=new java.util.Properties()
prop.put("user","username")
prop.put("password","yourpassword")
val url="jdbc:mysql://host:3306/db_name"

val df=spark.read.jdbc(url,"table_name",prop)
df.show()

read example2

val jdbcDF = spark.read
  .format("jdbc")
  .option("url", "jdbc:mysql:dbserver")
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .load()

read example3

如果你想读取的不是一张表的数据,而是一句SQL的查询结果,那么可以这么操作:

val sql="""select * from db.your_table where id>1"""
val jdbcDF = spark.read
  .format("jdbc")
  .option("url", "jdbc:mysql:dbserver")
  .option("dbtable",  s"( $sql ) t")
  .option("user", "username")
  .option("password", "password")
  .load()

write example

import org.apache.spark.sql.SaveMode

val prop=new java.util.Properties()
prop.put("user","username")
prop.put("password","yourpassword")
val url="jdbc:mysql://host:3306/db_name"
//df是一个dataframe,也就是你要写入的数据
df.write.mode(SaveMode.Append).jdbc(url,"table_name",prop)

相关文章

网友评论

    本文标题:Spark 2.x读写MySQL

    本文链接:https://www.haomeiwen.com/subject/zehclqtx.html