簡體   English   中英

收集不同的鍵以使用相同的reducer功能-HADOOP

[英]gather different keys to the same reducer function - HADOOP

我想將所有至少具有一個整數的鍵的所有值收集到同一reduce函數。 例如,與鍵“ 1,2”對應的所有值和與鍵“ 2,3”對應的所有值都必須始終在同一化簡函數中,因為這兩個鍵的整數為2共同。

換句話說,我只想將“密鑰相等條件”更改為另一個條件。

有沒有辦法做到這一點? 它與Partitioner類相關,還是我必須做一些完全不同的事情?

如果這很重要,我將使用1.2.1 hadoop版本。

提前致謝!

我同意每個工作只有一個Reducer功能。 但是,當我在NetBeans中(而非分布式模式)運行hadoop作為模擬時,它會為每個唯一鍵創建一個化簡任務。 例如,如果我只有3個鍵(k1,k2,k3),它將調用reduce函數3次,每個鍵一次。

example:
Reducer: key=k1
values which correspond to k1
Reducer: key=k2
values which correspond to k2
Reducer: key=k3
values which correspond to k3

因此,只能從該化簡器的任務訪問對應於鍵k1的值,並且對於k2和k3值也是如此。 我要做的是將k1和k2收集到同一任務(假設這兩個鍵有共同點),這樣我就可以僅通過一個reducer任務訪問所有這些值(對應於k1和k2鍵)。

另外,我閱讀了這個示例,並且我認為在我運行它之前我已經理解了它,並且看到它再次創建了2個化簡任務,而不是3個,即分區程序中的年齡組數。

output example:
Reducer: female
Monica<tab>56<tab>92
Kristine<tab>38<tab>53
Alice<tab>23<tab>45
Nancy<tab>7<tab>98
Mary<tab>6<tab>93
Clara<tab>87<tab>72
Reducer: male
James<tab>34<tab>79
Jacob<tab>7<tab>23
Alex<tab>52<tab>69
Bob<tab>34<tab>89
Chris<tab>67<tab>97
Adam<tab>9<tab>37
Connor<tab>25<tab>27
Daniel<tab>78<tab>95

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM