如果我想编写一个“字数计算”程序来找出哪个字符的数字最大,我的reducer类将如下所示:
private String maxWord;
private int max = 0;
@Override
public void reduce(Text key, Iterable<LongWritable> values, Context context) throws IOException, InterruptedException
{
long sum = 0;
for (LongWritable value : values)
{
sum += value.get();
}
if(sum > max)
{
max = sum;
maxWord.set(key);
}
}
// only display the character which has the largest value
@Override
protected void cleanup(Context context) {
context.write(new Text(maxWord), new LongWritable(max)));
}
但在运行我的程序后,它总是给我一个错误,这是“nullpointerexception”在recurder任务,我不明白为什么。我如何改进我的计划来实现这个目标?
2条答案
按热度按时间soat7uwm1#
就是这样:
6bc51xsx2#
您应该尝试在setup()方法中初始化示例变量。你能在初始化字符串之前调用string.set()吗?那就行了。
如评论中所述,stacktrace也会有所帮助。