gpt4 book ai didi

java - 使用IntWritable的Hadoop Reduce输出始终在2处停止

转载 作者:行者123 更新时间:2023-12-02 21:49:45 24 4
gpt4 key购买 nike

即使给定键的值列表大于2,Reduce程序也始终将值输出为2。

例如:
字数测试文件包含类似
字数测试文件包含类似
字数测试文件包含类似

输出为:
这2
2
字2

Reduce代码为:

public class WordCountReducer
extends Reducer<Text, IntWritable, Text, IntWritable> {
//public static final log LOG = LogFactory.getLog(MyMapper.class);
@Override
public void reduce(Text key, Iterable<IntWritable> values,
Context context)
throws IOException, InterruptedException {
IntWritable count = null;

for (IntWritable value: values) {
if (count == null) {
count = value;
} else {

count.set(count.get() + value.get());

}
}


context.write(key, count);
}

}

你能在这里解释这个问题吗?当我使用int计数器时,它工作正常。

最佳答案

count = value;

不要这样归约器重复使用此可写操作,因此,无论您将其设置为什么,它都将最终成为该键的值列表中的最后一个值。

相反,请执行此操作。
count = new IntWritable();

关于java - 使用IntWritable的Hadoop Reduce输出始终在2处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22082150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com