输出一个记录的元组和所有其他记录Hadoop

时间:2015-04-14 07:52:22

标签: hadoop

我需要从Reducer发出一个元组,其中包含其中一条记录和其他每条记录。例如,如果Reducer得到:

key1, value1
key1, value2
key1, value3
key1, value4
key2, value5
key2, value6
key2, value7

我需要以某种方式为每个键选择一个值并用所有其他值发出它,具体来说,让我们说为key1选择了value2,而从key2中选择了value6。我需要从reducer中发出以下内容:

key1, value1, value2
key1, value2, value2
key1, value3, value2
key1, value4, value2
key2, value5, value6
key2, value6, value6
key2, value7, value6

正如你所看到的,我需要经历两次值,一次得到value2(例如),一次用所有其他记录发出它。

正如我所知,你不能两次迭代值,并且我假设数据集太大而无法适应内存,所以我无法缓冲这些值。

我的另一个想法是两次发出每个记录,并有两个不同的键,例如key1a和key1b,所以我可以迭代一次通过值来选择,并迭代第二次发出记录。还有其他办法吗?

我不想把它分成多个工作,因为这只是一个更大工序的一部分。

0 个答案:

没有答案