mr作业根据键将字符串附加到长行

whhtz7ly  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(290)

我的数据:

ABC|value x|value y
CDE|value n|value m
GHI|value h|value i
ABC|value o|value p
CDE|value f|value g

我需要这个输出:

ABC: (value x, value y), (value o, value p)
CDE: (value n, value m), (value f, value g)
GHI: (value h, value i)

我的理解是,在mapper中,我应该将输入拆分为如下的键值对:

"value x|value y"             ABC
"value n|value m"             CDE

但我被困在减速机上--有什么想法吗?

soat7uwm

soat7uwm1#

好吧,我想出来了。
Map器应该实际生成以下内容:

ABC             "value x|value y"             
CDE             "value n|value m"

然后,在reducer中——知道hadoop在默认情况下对键进行排序——我们可以使用简单的逻辑将后续值添加到键中 if key == next key .

相关问题