福州免費(fèi)企業(yè)網(wǎng)站建站更先進(jìn)的seo服務(wù)
連接方式應(yīng)該很多,現(xiàn)在記錄本人目前學(xué)習(xí)到的一種方式。
一、讀取外部數(shù)據(jù)庫
1.notebook執(zhí)行語言為sql時(shí)可以通過JDBC方式加載數(shù)據(jù)庫數(shù)據(jù)。
以下代碼將可以將sqlserver中的表加載到databricks視圖中,當(dāng)然也可創(chuàng)建表來接收外部數(shù)據(jù)。
%sqlCREATE TEMPORARY VIEW view-name
USING JDBC
OPTIONS (url "jdbc:sqlserver://<your-database-url>;database=<your-database-name>,.;Authentication=<your-authentication-type>;",dbtable "<your-table-name>",user '<username>',password '<password>'
)
2.sql方式操作視圖直接讀取數(shù)據(jù)庫數(shù)據(jù)
可以直接sql操作上一步的數(shù)據(jù)來直接讀取數(shù)據(jù)
%sqlselect * from view-name
有時(shí)候我們需要在notebook為spark的環(huán)境下加載數(shù)據(jù),可以通過以下方式操作步驟1中建立的視圖來讀取數(shù)據(jù),將數(shù)據(jù)加載到Dataframe中。
%pythondata_pd = spark.sql("select * from view-name").toPandas()
二、寫數(shù)據(jù)到外部數(shù)據(jù)庫
1. sql方式寫入
待測(cè)試更新。。。
2.spark方式寫入數(shù)據(jù)庫
可以通過以下方式將dataframe數(shù)據(jù)寫入到數(shù)據(jù)庫,url、user、password參數(shù)與上文“一”中讀取數(shù)據(jù)時(shí)相同。driver為數(shù)據(jù)庫驅(qū)動(dòng),比如我使用的是sqlserver,driver為
" com.microsoft.sqlserver.jdbc.SQLServerDriver"
%sparkspark.createDataFrame(data_pd).write \.mode("append") \.format("jdbc") \.option("url", url) \.option("dbtable", dbtable) \.option("user", user) \.option("password", password) \.option("driver", driver) \.save()