我有一個 sql 查詢結果,我想在 databricks 筆記本中將其轉換為 pandas df。該查詢正在從 dbx 表中提取資料,如果知道這一點很重要的話。
我的查詢看起來像這樣:
With cte1 as (
SELECT col1, col2 FROM Table1),
cte2 as(
SELECT col10, col12 FROM Table2)
SELECT * FROM cte1 JOIN cte2 on col1=col10
我得到了我正在尋找的結果,然后我想在 databricks 中將其轉換為 pandas df。我嘗試的最后一個是from pyspark.sql import SQLContext在我最后一次谷歌搜索之后使用,雖然我找不到任何特定于我的意圖的東西,但它會引發 sql 錯誤。
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
df = sqlContext.sql("""
With cte1 as (
SELECT col1, col2 FROM Table1),
cte2 as(
SELECT col10, col12 FROM Table2)
SELECT * FROM cte1 JOIN cte2 on col1=col10
"""
)
有沒有辦法將 sql 查詢結果轉換為 databricks 筆記本中的 pandas df?
uj5u.com熱心網友回復:
您是否嘗試過使用 spark 資料框而不是 pandas df?不知何故,兩者共享一些共同的功能。使用 spark df,您仍然可以在 databricks 中使用 spark 的強大功能,而不是 pandas,其中 df 將僅使用您計算機的內核,如果您使用 xx GB 的資料,這可能會回傳記憶體錯誤,尤其是。為此,可以像往常一樣創建表,而您可以直接使用查詢作為要創建的表的源。
CREATE TABLE newTable as
SELECT * FROM
( SELECT col1, col2 FROM Table1 ) t1
JOIN
( SELECT col10, col12 FROM Table2) t2
ON col1=col10
上面的查詢會說沒有輸出,但是因為您只創建了一個表。然后運行以下命令來創建一個 spark 資料框:
dataframe = sqlContext.sql('select * from newTable')
然后使用 spark 函式執行分析。提醒一下,如果您的 databricks 筆記本默認使用 Python 以外的其他語言,請確保始終使用魔法命令運行您的命令單元%python。您可以從dataframe.printSchema()which 開始,如pd.info(),dataframe.columns列出所有列,dataframe.show(5)列出 5 個結果,等等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453436.html
