Hadoop 根据键将输出减少到不同的文件
是否可以根据键将减速器的输出写入不同的文件 例如,如果我将以下数据提供给减速器:Hadoop 根据键将输出减少到不同的文件,hadoop,mapreduce,Hadoop,Mapreduce,是否可以根据键将减速器的输出写入不同的文件 例如,如果我将以下数据提供给减速器: (Key, Value) ==> (1, A) (1, B) (2, C) (2, D) 输出应写入两个不同的文件output1和output2 输出1必须包含: (key, Value) ==> (1, [A,B]) (key value) ==> (2, [C,D]) 输出2必须包含: (key, Value) ==> (1, [A,B]) (key value) ==>
(Key, Value) ==> (1, A) (1, B) (2, C) (2, D)
输出应写入两个不同的文件output1和output2
输出1必须包含:
(key, Value) ==> (1, [A,B])
(key value) ==> (2, [C,D])
输出2必须包含:
(key, Value) ==> (1, [A,B])
(key value) ==> (2, [C,D])
有人能告诉我怎么做吗?默认分区器是
hashpartitor
他们保证同一把钥匙最终会在同一个减速器中
如果需要使用不同的键向一个文件输出相同的值-
您可以使用自定义分区器
eg: 1,[A,B,G,M]
1,[A,K,I,Y]
2,[G,A,O]
2,[U]
如果您需要在同一个reducer中包含值,则可以使用自定义分区器
在这个特殊的例子中,我们打破了Reduce理论(同一个键进入同一个Reducer)
1,[A,B,G,M]
1,[A,K,I,Y]
2,[G,A,O]
进入1减速器,即使它们不是相同的键
检查这个
同时,我认为实现这一点最简单的方法是使用。它将允许您指定多个输出目标以及何时在减速机中写入它们。您正在寻找多个输出。它允许您将数据写入多个目的地(文件、NoSQL数据库,如Redis等)。这个链接应该让您开始:如果答案解决了您的问题,请接受答案