mapreduce 程序中总是需要 mapper 函数?

mapper function is always needed in a mapreduce program?

我正在尝试开发一个 hadoop mapreduce 程序来计算文本文件中的最高温度。

输入文本文件如下所示:

城市 1 - 10

城市 2 - 15

城市 3 - 4

城市 4 - 20

我是 mapreduce 的初学者,但我读到使用 mapper 时,输出应该是转换为有意义的键值对的输入。但是如果我已经有一个像下面这样的输入文件,我不需要写一个映射器文件(因为已经有了键值对)??

城市1 10

城市 2 15

城市 3 4

城市 4 10

我正在尝试开发映射器文件,但我不明白在这种情况下是否真的有必要。

代码:

for line in sys.stdin:

    line = line.strip()
    print line

是的,总是需要的。 mapper 只是为了保证 reducer 接收排序和分区的输入。

这是一个框架设计选择,Hadoop 需要设置映射器。在您的示例中,您可以使用标准 Mapper / IdentityMapper.