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

散列如何洗牌參加工作的火花?

VinayEmmadi
新的因素

你好,我想了解內部洗牌散列連接。我想檢查我的理解是正確的。假設有兩個表t1和t2加入列國家不同值(8)。如果我洗牌分區的數量設置為4兩個執行人。在這種情況下,數據從t1的執行人是首先分成4分區(假設部分0 - 3)/文件(存儲在磁盤或內存作為中間步驟)使用一個散列鍵% 4,同樣都是用t2跨兩個執行器的數據。在降低階段,相同的數據分區合並,最後導致4分區(例如:0數據從t1和t2的執行人是0)合並成一個大的部分在執行之前加入。我對它的理解是正確的嗎?謝謝你的幫助!

1回複1

匿名
不適用

@Vinay Emmadi:在火花,一個散列洗牌時使用的連接是一種連接連接兩個數據集在一個共同的關鍵。第一個分區數據基於連接鍵,然後每個分區都打亂發送到集群中的一個節點。洗牌的數據然後排序和合並與另一個數據集相同的連接鍵。

這是一個循序漸進的解釋在火花散列洗牌加入是如何工作的:

  1. 分區:被加入的兩個數據集分割基於他們使用HashPartitioner連接鍵。每個分區都有相同的連接鍵的所有記錄。
  2. 洗牌:分區打亂整個集群中的節點使用網絡。每個節點接收一個或多個分區。
  3. 本地連接:每個節點接收到的分區上執行本地連接。連接操作比較兩個數據集的連接鍵,產生一個新的數據集,包括兩份數據集具有相同的連接鍵。
  4. 合並:本地連接結果合並在一起了reduce-like操作稱為慢慢減少。洗牌減少操作合並本地連接結果為每個連接鍵到一個結果。
  5. 輸出:加入的最終結果寫入磁盤或返回給應用程序。

希望這可以幫助你!

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

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

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

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

Baidu
map