我已将Text作为Mapper类中的键。但是,当我进入Reducer类时,键的值已更改。下面是一个例子。
Mapper中的关键是:
20130101
20130102
20130103
但是,在Reducer类中,键如下:
20130101
诸如20130102和20130103之类的键已被20130101取代。
最佳答案
听起来好像您没有从密钥中复制值。 Hadoop以优化的名义做了一些令人讨厌的意外事情,尤其是object reuse。
因此,当您认为要获取不同的Text
实例时,实际上就得到了相同的实例。例如,如果要将这些Text
键放入列表或 map 中,除非复制这些值,否则它将无法按预期工作。