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

我的火花SQL加入速度非常緩慢——我能做些什麼來呢?

User16765128951
因素二世

花10 - 12分鍾,我可以讓它更快嗎?

8回答說8

User16765128951
因素二世

如果你的表是非常小的,你可以做一個廣播散列連接加速你的加入。有筆記本磚指南,搜索“BroadcastHashJoin“發現筆記本。

否則,在火花SQL join操作導致洗牌數據有數據通過網絡傳輸,可以緩慢。如果你多次加入表查詢,你可以考慮:

1)保存加入表作為它自己的表。

2)創建一個臨時表,代表加入表,然後緩存表。

這將防止需要多次洗牌數據並做連接。

richard1_558848
新的貢獻者二世

我加入拚花之間的數據庫存儲在S3

但它似乎無論如何引發試圖讀取所有數據更改查詢時,我們沒有看到更好的性能。

我需要繼續調查這一點,因為它是不清楚。

__rake
新的貢獻者二世

我想我遇到類似的事情。

沒有使用S3。但拚花表解讀DataFrames,戰術

堅持
,
合並
,
重新分區
從拚花在閱讀。使用HiveContext,如果這很重要。但是我得到的印象是,它忽略了試圖重新分區和緩存,總是從頭再計算我的查詢。

我肯定仍然新,所以還不確定如何找出到底發生了什麼。

MarcLimotte
新的貢獻者二世

@Vida哈哈我隻是做一個克隆的“運行所有BroadcastHashJoin“筆記本,它似乎有錯誤。

% sql noscan my_small_table計算統計分析表

出現在“配置BroadcastHashJoin小桌子。”,得到org.apache.spark.sql.catalyst.analysis.NoSuchTableException。我猜這是b / c此時在筆記本上(這是第一次運行),與registerTempTable my_small_table隻有創建;不是saveAsTable(我認為這需要分析)。

如果我運行的代碼塊降低saveAsTable然後回來重新運行“分析”步驟,得到:

錯誤的SQL語句:com.databricks.backend.daemon.driver。DriverLocal SQLExecutionException美元:. lang。蜂巢UnsupportedOperationException:方式分析隻適用於表,但my_small_table LogicalRelation

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

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

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

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

Baidu
map