我正在尝试开发一个 hadoop mapreduce 程序来计算文本文件中的最高温度。
输入文本文件如下所示:
城市 1 - 10
城市 2 - 15
城市 3 - 4
城市 4 - 20
我是 mapreduce 的初学者,但我读到过 mapper,输出应该是转换为有意义的键值对的输入。但是如果我已经有一个像下面这样的输入文件,我不需要写一个映射器文件(因为已经有了键值对)??
城市 10
城市 2 15
城市 3 4
城市 4 10
我试图开发映射器文件,但我不明白在这种情况下是否真的有必要。
代码:
for line in sys.stdin:
line = line.strip()
print line
最佳答案
是的,它总是需要的。映射器仅用于保证缩减器接收排序和分区的输入。
这是一个框架设计选择,Hadoop 需要设置映射器。在您的示例中,您可以使用标准的 Mapper
/IdentityMapper
。
关于hadoop - mapreduce 程序中总是需要 mapper 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29583058/