我想把至少有一个相同整数的键的所有值收集到同一个reducer函数中。例如,所有对应于键“1,2”和与键“2,3”相对应的键必须始终在同一个reducer函数中,因为这两个键具有相同的整数2。
换句话说,我只想把“键相等条件”改成另一个条件。
有办法吗?它与partitioner类有关还是我必须做一些完全不同的事情?
如果这很重要的话,我会使用1.2.1hadoop版本。
提前谢谢!
我想把至少有一个相同整数的键的所有值收集到同一个reducer函数中。例如,所有对应于键“1,2”和与键“2,3”相对应的键必须始终在同一个reducer函数中,因为这两个键具有相同的整数2。
换句话说,我只想把“键相等条件”改成另一个条件。
有办法吗?它与partitioner类有关还是我必须做一些完全不同的事情?
如果这很重要的话,我会使用1.2.1hadoop版本。
提前谢谢!
1条答案
按热度按时间2vuwiymt1#
我每项工作只有一个减速机功能,我同意这一点。然而,当我在netbeans(而不是分布式模式)中模拟运行hadoop时,它会为每个唯一键创建一个reducer任务。例如,如果我只有3个键(k1,k2,k3),它将调用reduce函数3次,每个键一次。
因此,与键k1对应的值只能从该reducer的任务中访问,对于k2和k3值也是如此。我想做的是将k1和k2聚集到同一个任务中(假设这两个键有共同点),这样我就可以从一个任务中访问所有这些值(对应于k1和k2键)。
另外,我读了这个例子,我认为我理解它,直到我运行它,我看到它再次创建2个reducer任务,而不是3,这是分区器中年龄组的数量。