日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2024/7/19 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

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