[原创]SparkR针对mysql的数据读写操作实现
網上翻了兩天沒找到一份有用的文章,自己研究SparkR的官方api文檔,總算找到了實現的接口
我是用R語言加載SparkR庫的方式,當然也可以直接用SparkR控制臺就不用自己加載SparkR的庫了
?
#首先加載sparkR的庫
Sys.setenv(TEST_HOME = "/root/software/spark-1.6.0-bin-hadoop2.6")
library(SparkR, lib.loc = c(file.path(Sys.getenv("TEST_HOME"), "R", "lib")))
?
#初始化sqlContext
sc <- sparkR.init(master = "local[*]", sparkEnvir = list(spark.driver.memory="2g"))
sqlContext <- sparkRSQL.init(sc)
?
#從mysql數據庫加載表數據,url、用戶名和密碼修改為自己的
df <- loadDF(sqlContext, source="jdbc", url="jdbc:mysql://192.168.11.8:3306/testdb?characterEncoding=UTF-8", dbtable="testdb.forecast",user="root",password="***")
?
//把df注冊為臨時表tbl
registerTempTable(df,"tbl")
?
#創建一條數據記錄
#df轉換為R的data.frame
df2=as.data.frame(df)
?
#修改下數據內容
df2[1,]=c('2002-02-02',6)
?
#把R的data.frame數據轉換為spark的DataFrame
df3=as.DataFrame(sqlContext,df2)
?
//數據記錄df3插入mysql數據表,overwrite=TRUE時刪除數據表全部數據,寫入新數據,=FALSE時把數據記錄追加入數據表,保留原表數據
insertInto(df3,"tbl",overwrite=TRUE)
?
大功告成,去sql server查詢一下,數據已經添加成功了
轉載于:https://www.cnblogs.com/greatOldCoder/p/9238638.html
總結
以上是生活随笔為你收集整理的[原创]SparkR针对mysql的数据读写操作实现的全部內容,希望文章能夠幫你解決所遇到的問題。