取消
顯示的結果
而不是尋找
你的意思是:

使用JDBC連接到databrick默認集群和表解讀pyspark dataframe。所有列變成一樣的列名稱

brian_0305
新的貢獻者二世

我用下麵的代碼使用JDBC連接到databrick默認集群和表解讀pyspark dataframe

url = " jdbc:磚:/ /(空間域):443 /違約;運輸方式= http; ssl = 1; AuthMech = 3; httpPath =(路徑);AuthMech = 3; UID =令牌;PWD = [your_access_token] ' driver_class = ' com.databricks.client.jdbc。司機“#通過查詢MySQL數據庫創建一個DataFrame df_1 = spark.read.format (jdbc) \ .option (“url”, url) \ .option(“司機”,driver_class) \ .option(“數據表”,“my_table2”) \ .load () df_1.show ()

最後df_1 dataframe

名字+——+ | | +——+名字| | |名稱| | | +——+名字

最終結果

+ - - - + | |名稱+——+約翰| | |簡| |鮑勃| +——+

我還測試了代碼

df_2 =火花。sql (select * from my_table2) df_2.show ()

結果dataframe是正確的。請建議。謝謝你!

錯誤

3回複3

ajaypanday6781
尊敬的貢獻者二世

嗨@yu張

隻是試著給你的數據庫名稱也到代碼。

我使用相同的代碼與數據庫名稱和它對我的工作很好

brian_0305
新的貢獻者二世

pyspark.read。jdbc函數數據庫名稱選擇嗎?你能告訴我如何在這個函數給數據庫名稱。我認為數據庫名稱包含在jdbc url選項。

匿名
不適用

@yu張:

看起來問題第一個代碼片段你提供是不指定正確的查詢從數據庫檢索數據。

當使用jdbc數據源的load()方法,您需要提供一個SQL查詢

數據表選項,獲取你想要的數據加載到DataFrame。

假設你my_table2表包含一列指定名稱的值你列出,您可以修改您的代碼獲取正確的數據如下:

url = " jdbc:磚:/ /(空間域):443 /違約;運輸方式= http; ssl = 1; AuthMech = 3; httpPath =(路徑);AuthMech = 3; UID =令牌;PWD = [your_access_token] ' driver_class = ' com.databricks.client.jdbc。司機“#通過查詢MySQL數據庫創建一個DataFrame df_1 = spark.read.format (jdbc) \ .option (“url”, url) \ .option(“司機”,driver_class) \ .option(“數據表”,“(從my_table2選擇名稱)作為tmp”) \ .load () df_1.show ()

這段代碼通過一個SQL查詢數據表的選項,選擇隻有從你的名字列

my_table2表。結果DataFrame應該包含您期望的數據。

或者,您可以使用火花。sql方法直接執行一個sql查詢數據庫並加載到DataFrame結果,當你在第二個代碼片段:

df_2 =火花。sql (select * from my_table2) df_2.show ()

這段代碼也應該從數據庫檢索正確的數據。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map