我正在使用 hadoop流式来处理一个巨大的文件。 假设我有一个文件,每行都是一个数字,我想把这个文件分成2个文件,一个包含奇数 数字,其他甚至。
使用hadoop,我可以为这个作业指定2个减速器,因为数字从mapper到
reducer,我认为这个数字是由number % 2
确定的减速器,对吗?
但我被告知,不仅仅是number % 2
而是 hash(number) % 2
这会产生一个数字
去哪个减速机,是真的吗?
如果是的话,我怎么能做到?我可以指定一个分区或其他什么来使它正确吗?
答案 0 :(得分:0)
如何在映射器中进行拆分?
例如,每个映射器都
if int(number) % 2 == 0:
# Output "EVEN", number
else:
# Output "ODD", number
然后减少两个键:EVEN和ODD,将它们写入适当的文件。