我已将Text作为Mapper类中的键。但是,当我进入Reducer类时,键的值已更改。下面是一个例子。

Mapper中的关键是:

20130101
20130102
20130103

但是,在Reducer类中,键如下:

20130101

诸如20130102和20130103之类的键已被20130101取代。

最佳答案

听起来好像您没有从密钥中复制值。 Hadoop以优化的名义做了一些令人讨厌的意外事情,尤其是object reuse

因此,当您认为要获取不同的Text实例时,实际上就得到了相同的实例。例如,如果要将这些Text键放入列表或 map 中,除非复制这些值,否则它将无法按预期工作。

10-01 07:29
查看更多