我使用Hadoop來計算單詞之間的共現相似性。我有一個包含看起來像同現語對的文件:Hadoop:如何將Reduce的輸出收集爲Java HashMap
a b
a c
b c
b d
我使用的是圖基礎的方法是把詞作爲節點和共同出現的詞有他們之間的邊緣。我的算法需要計算所有節點的程度。我已經成功地寫了一個Map-Reduce
工作來計算其輸出以下總額度:
a 2
b 3
c 2
d 1
目前,輸出回寫到文件,但我想要的卻是捕捉到的結果,說, java.util.HashMap
。然後,我想在其他Reduce
作業中使用此HashMap
來計算最終相似度。
這裏是我的問題:
- 是否有可能捕獲內存減少的作業的結果(
List
,Map
)。如果是這樣,怎麼樣? - 這是最好的方法嗎?如果不是,我該如何處理?
如果我理解正確,你需要第一份工作的輸入和第一份工作的輸出來運行第二份工作?無論是哪種情況,都應該可以簡單地級聯兩個工作。預計散列表有多大? (你可能會把它放到第二份工作的分佈式緩存中) – DDW
你是對的!我需要第一份工作的輸入和第一份工作的輸出來運行第二份工作。 HashMap可能跨越數萬個條目。 – codemaniac