日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

spark mysql 交互_Spark - 直接操作数据源 MySQL

發布時間:2024/7/19 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spark mysql 交互_Spark - 直接操作数据源 MySQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果我們的Mysql服務器性能不咋滴,但是硬盤很夠,如何才能做各種復雜的聚合操作?答案就是使用spark的計算能力的,我們可以將mysql數據源接入到spark中。

讀取

val mysqlDF = spark

.read

.format("jdbc")

.option("driver","com.mysql.jdbc.Driver")

.option("url","jdbc:mysql://localhost:3306/ttable")

.option("user","root")

.option("password","root")

.option("dbtable","(select * from ttt where userId >1 AND userId < 10) as log")//條件查詢出想要的表

//.option("dbtable","ttable.ttt")//整張表

.option("fetchsize","100")

.option("useSSL","false")

.load()

分區讀取

spark

.read

.format("jdbc")

.option("url", url)

.option("dbtable", "ttt")

.option("user", user)

.option("password", password)

.option("numPartitions", 10)

.option("partitionColumn", "userId")

.option("lowerBound", 1)

.option("upperBound", 10000)

.load()

實際會生成如下查詢語句,(所有分區會一直查詢,直到整張表數據查詢完為止)

SELECT * FROM ttt WHERE userId >= 1 and userId < 1000

SELECT * FROM ttt WHERE userId >= 1000 and userId < 2000

SELECT * FROM ttt WHERE userId >= 2000 and userId < 3000

...

寫入

mysqlDF.createTempView("log")

spark

.sql("select * from log")

.toDF()

.write

.mode(SaveMode.Overwrite)

.format("jdbc")

.option("driver","com.mysql.jdbc.Driver")

.option("url","jdbc:mysql://localhost:3306/ttable")

.option("dbtable","a")

.option("user","root")

.option("password","root")

.option("fetchsize","100")

.option("useSSL","false")

.save()

總結

以上是生活随笔為你收集整理的spark mysql 交互_Spark - 直接操作数据源 MySQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。