我有一個問題,我不明白。CogroupBy是否只涉及一名工人?
我有兩個文件,一個是272個對象,另一個是748922個對象。 我想爲第一個集合中的每個對象添加第二個集合,所以272 * 748922 ...
我需要它,因爲第一個集合的每個對象都有自己的計算,而且相對於第二個集合。
因此,我在每條記錄上添加一個關鍵tmp = 1,然後我分組seconc集合,並將它的值(789222 hashmaps向量)合併到第一個集合中的每個記錄中。
問題是我的印象是隻有一名工人蔘與其中。 有沒有辦法讓更多的工人蔘與這個行動?
因爲我明白這是一個大的計算,但對於50名工人是什麼... 尤其是當你考慮一個事實,即第二收集15,7莫...
一個模式來理解狀態:
Pcoll 1:[{:tmp 1 [更多數據...]} {:tmp 1 [更多數據...]} ...](272個元素)
Pcoll 2:[{ tmp 1:數據(... 75000個元素的向量...)}](1個元素)
Pcoll結果:[{:tmp [more data ...]:data(vector of 750 000 elemen TS)} ...(272元)
我用TMP加入,並添加:數據Pcoll 1
的每一個元素這是幾乎沒有在我的腦海,爲什麼這麼慢?
謝謝!
感謝您的回答。這很難解釋,因爲我使用Clojure包裝。我加入了:tmp,所以結果與SQL相似:Pcoll1的每個元素都包含以下內容:Pcoll2的唯一元素的數據。我只想將第二個Pcoll的數據添加到Pcoll1的所有獨特元素。如果Java中有一個意思,我會很高興!我用視覺效果更新了我的帖子。底下,我知道自定義連接的Java代碼首先被group-by:tmp所以是1對1操作。我也可以加入4個領域來傳播工作,但我感覺它不會工作^^ –
我認爲第三段(side-inputs)可能更適合您正在執行的加入。你看過那些嗎? –
謝謝我把它解釋得很差,因爲我不知道它存在。希望在Clojure包裝中有這個選項。我會測試它,看看它是否工作! –