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

為什麼三角洲湖創建一個238.0 tib的洗牌合並?

JordanYaker
貢獻者

我在這裏坦率地說虧本。我有一個任務,始終執行隻是非常。今天早上我花了一些時間來調試它和物理顯示238 tib的洗牌計劃:

物理計劃= = = = AdaptiveSparkPlan(40) + - = = = =當前計劃SerializeFromObject (22) + - MapPartitions (21) + - DeserializeToObject項目(19)(20)+ - + - ObjectHashAggregate(18) + -交換(17)+ ObjectHashAggregate (16) + - ObjectHashAggregate (15) + - ShuffleQueryStage(14),統計(sizeInBytes = 238.0 TiB) + -交換(13)+ ObjectHashAggregate項目(11)(12)+ - * + - CartesianProduct內(10):- *項目(5):+ - *過濾器(4):+ - *項目(3):+ - * ColumnarToRow(2): + -掃描拚花(1)+ - *(9)+ - *項目(8)+ - * ColumnarToRow(7) + -掃描拚花(6)

我能理解這個數字如果我是處理大量的數據。我不是。這個查詢的笛卡兒積產生125行如下所示,所以不是我的合並邏輯

圖像此外,輸出表也不是很大;這是15個文件沒有大於10 mb的文件(注意:我肯定能做一些實現更好的設置,但這是另一個故事)。

我覺得我的智慧與這個問題。任何想法,我們將不勝感激。

1接受解決方案

接受的解決方案

JordanYaker
貢獻者

我真的想知道它不是一個詭計的邏輯合並在這一點上。

我試著運行一個輸出文件之間的連接,這將是我的MERGE語句的輸入。我發表了一篇解釋查詢和創建BroadcastNestedLoopJoin最終。很多情況下,嵌套循環聯接困擾我的性能。我要試試分裂合並的兩個單獨的電話,看看對我起作用的。

這可能是解釋的合並不顯示這個,因為合並是如何執行的。

在原帖子查看解決方案

8回答說8

匿名
不適用

所以我不太確定這個問題,但是我將帶你通過我的思維和想法。

反序列化/地圖/序列化是Scala中的用例類嗎?

你加入的兩個表有多大?

JordanYaker
貢獻者

@Joseph Kambourakis一個表是1.5 mb。另一種是大約80 mb。

匿名
不適用

嗯,那沒有意義,它將創建數據洗牌或在任何能力。計劃的洗牌看起來像什麼?應該說,這部分數據寫/讀。

不是很大。

圖像

有趣的是,這個階段跑了7小時。和大多數的調度器延遲。

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

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

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

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

Baidu
map