我想计算已预订电影票的学生人数,并且在减少阶段之后只希望一个输出。我希望映射器发出的是学生人数而不是键的计数。
我是否可以将NullWritable用作输出键,以使 map 端没有任何内容作为归约端的键?
如下所示
context.write(NullWritable.get(),new IntWritable(1);
数据将被发送到Reducer,Reducer将执行进一步的聚合
请建议是否有人有更好的选择。
先感谢您!!
最佳答案
相反,您可以将 map 输出发出为
context.write(new Text("number of students"),new IntWritable(1));
在驱动程序中将 reducer 的数量设置为1.然后可以对 reducer 端的值求和。
假设如果只需要Output文件中的值,并且在这种情况下不需要键,则可以使用NullWritable。
context.write(NullWritable.get(),value)
关于hadoop - NullWritable的目的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33360814/