[原创]SparkR针对mysql的数据读写操作实现
網(wǎng)上翻了兩天沒找到一份有用的文章,自己研究SparkR的官方api文檔,總算找到了實現(xiàn)的接口
我是用R語言加載SparkR庫的方式,當(dāng)然也可以直接用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數(shù)據(jù)庫加載表數(shù)據(jù),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")
?
#創(chuàng)建一條數(shù)據(jù)記錄
#df轉(zhuǎn)換為R的data.frame
df2=as.data.frame(df)
?
#修改下數(shù)據(jù)內(nèi)容
df2[1,]=c('2002-02-02',6)
?
#把R的data.frame數(shù)據(jù)轉(zhuǎn)換為spark的DataFrame
df3=as.DataFrame(sqlContext,df2)
?
//數(shù)據(jù)記錄df3插入mysql數(shù)據(jù)表,overwrite=TRUE時刪除數(shù)據(jù)表全部數(shù)據(jù),寫入新數(shù)據(jù),=FALSE時把數(shù)據(jù)記錄追加入數(shù)據(jù)表,保留原表數(shù)據(jù)
insertInto(df3,"tbl",overwrite=TRUE)
?
大功告成,去sql server查詢一下,數(shù)據(jù)已經(jīng)添加成功了
轉(zhuǎn)載于:https://www.cnblogs.com/greatOldCoder/p/9238638.html
總結(jié)
以上是生活随笔為你收集整理的[原创]SparkR针对mysql的数据读写操作实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。