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