2013-05-03 41 views
0

我有一個文件集合,每個文件都包含作者姓名和他使用的詞語。現在我正在嘗試編寫一個map-reduce代碼來計算每個作者的前N個單詞。棘手的部分是該文件可能包含多個作者。 所以我應該如何設計我的map-reduce框架? 僞碼加一點說明就足夠了。謝謝在mapreduce框架中爲每個作者計數頂端單詞

回答

0

在一個MR作業中,通過創建作者+單詞和值計數的複雜關鍵字來統計每個作者使用的單詞。

第二個MR作業將讀取這些對(作者+單詞,計數)並將它們映射到(作者+計數,單詞+計數)。編寫一個比較器,首先按作者順序排列這些鍵,然後按count(從最大到最小)和一個分組器,將同一作者的兩個鍵視爲在同一個縮減組中,而不管它們的數量。您可能需要使用分區程序來確保作者的所有對都轉到同一個分區。然後,每個作者將調用一次reducer,並且數值(word + count)將由迭代次數最高的計數提供。在reducer中,只需從Iterable的前N個記錄中編寫作者,單詞和計數。

相關問題