Hai*_*ang 2 hadoop mapreduce output
在我的mapreduce工作中,我只想输出一些行.
但如果我这样编码:context.write(data,null);
该程序将抛出java.lang.NullPointerException.
我不想像下面这样编码:context.write(data,new Text(""));
因为我必须修剪输出文件中每一行的空白区域.
有什么好方法可以解决吗?提前致谢.
对不起,这是我的错.我仔细检查了程序,发现原因是我将Reducer设置为合并器.
如果我不使用组合器,语句context.write(data,null); 在减速机工作正常.在输出数据文件中,只有数据行.
从hadoop权威指南中分享NullWritable解释:
NullWritable是一种特殊类型的Writable,因为它具有零长度序列化.没有字节写入或读取流.它用作占位符; 例如,在MapReduce中,当您不需要使用该位置时,可以将键或值声明为NullWritable - 它有效地存储常量空值.当您想要存储值列表而不是键值对时,NullWritable也可以用作SequenceFile中的键.它是一个不可变的单例:可以通过调用NullWritable.get()来检索实例.