我有一個簡單的用例。在我的輸入文件中,我只需要計算總字數的百分比分佈。例如word1出現10次,word2出現5次等等,總的單詞數量是100,那麼我只需要顯示%word1 = 10%,%word2 = 5%等。所以每當我遇到一個單詞時,在map()和reduce中的context.write(word,1)總結了單個計數。但要計算我們需要總字數的百分比。我也在計算這個。reduce()方法中鍵的輸入順序是什麼
因此,在獲取word1或word2中的鍵的縮減之前,我需要爲每個單詞獲得百分比計算的總字數鍵。但在減少我得到這個總的話鍵後一些其他鍵。因此我無法計算百分比。
我也嘗試使用context.getConfiguration()。setFloat(「total count」,count)來設置map的配置總數。但在減少我無法從配置中獲得此值。它只是返回null。
任何建議請添加。
謝謝你..
您可以嘗試使用計數器,而不是在配置中設置值。對於映射器中的每個單詞,只需增加計數器,然後在減速器中獲取該值。 – ajduff574 2011-05-31 14:34:38
順便說一下,鍵的輸入順序是根據默認比較器進行排序的。所以如果是文本,那麼就是字典順序。但是,每個鍵只能使用一個Reducer,所以如果您希望代碼與多個Reducer配合使用,則不能只輸出總字數作爲鍵。 – ajduff574 2011-05-31 14:39:47