2013-08-23 81 views
8

嗨,我想學習如何在hadoop.i知道hadoop需要的排序鍵,但不是價值觀按字面值排序字數。如何根據hadoop中的值對字數進行排序?

我知道的值進行排序,我們必須有一個分區,groupingcomparator和sortcomparator

,但我在運用這些概念放在一起排序的字按價值算有點糊塗了。

我們是否需要使用另一個地圖縮小作業來實現相同或否則組合器來計算出現次數,然後在這裏進行排序並將其發送到Reducer?

任何一個可以解釋如何按值排序字數計數示例?

+0

8小時前你沒問過同樣的問題嗎? [http://stackoverflow.com/questions/18395998/hadoop-map-reduce-secondary-sorting] – DDW

+0

有點混淆,同時應用這些概念 – user1585111

回答

7

您需要有第二個mapreduce作業。除非你總結總數(第一個MR工作是這樣),你怎麼看待按價值排序(單詞的計數)?從邏輯上講不可能。

+0

我的意思是根據出現次數排序 – user1585111

+0

是的。我有同樣的理解。要確定發生次數,您需要運行MR作業。只有在處理密鑰結束時,才能確定事件的發生次數。當下一個鍵來到Reduce任務的上下文的前一個鍵時。所以不可能把這個詞作爲關鍵詞並按價值分類。您需要將其輸出到另一個MR作業,並將該值用作第二個作業中的關鍵字。 – Rags

+0

我只是一個初學者,你的回答是有幫助的。謝謝你 – user1585111

6

這稱爲二級分類。有關詳細信息,請參閱thisthis

+1

次要排序無助於按照問題中提到的出現次數進行排序。不可能達到! – rbyndoor

+0

@ruby:問題是關於對wordcount作業的結果進行排序,基於值是每個單詞的計數。是什麼讓你覺得這是不可能實現的? – Tariq

+1

否..根據用戶的評論,非常清楚,user1585111希望按出現次數進行排序。這不是次要的。 – rbyndoor

相關問題