0

假设我有两个数据集:

hello world
bye world

hello earth
new earth

我想运行一个不指定映射器类或reducer类的map-reduce任务,因此将调用默认的mapper和reducer——它们都是标识函数。当我运行作业时,输出是::

0       hello world
0       hello earth
12      new earth
12      bye world

我很困惑为什么密钥像 0 和 12 ?!main()当我在::中注释掉这些行时,我只是使用了默认的映射器和减速器

//    job.setMapperClass(Map.class);
//    job.setCombinerClass(Reduce.class);
//    job.setReducerClass(Reduce.class);

所以,我的问题是这里的输出键是什么?为什么它看起来像 0, 0, 12, 12 ?

4

1 回答 1

2

0,0,12 和 12 是输入数据中的文件偏移量。在文本输入的情况下,映射器的 K 是文件偏移量,值是输入行。检查以获取更多信息。

于 2013-10-26T08:56:00.853 回答