我目前正在从事MapReduce作业,该作业仅使用没有 reducer 的映射器。我不需要写出密钥,因为我只需要存储在数组中的值并将其写出作为最终输出文件即可。如何在Hadoop上实现这一目标?我只想写出值,而不是将键和值都写到输出中。这些值在一个数组中。谢谢
public void pfor(TestFor pfor,LongWritable key, Text value, Context context, int times) throws IOException, InterruptedException{
int n = 0;
while(n < times){
pfor.pforMap(key,value, context);
n++;
}
for(int i =0;i<uv.length; i++){
LOG.info(uv[i].get() + " Final output");
}
IntArrayWritable edge = new IntArrayWritable();
edge.set(uv);
context.write(new IntWritable(java.lang.Math.abs(randGen.nextInt())), edge);
uv= null;
}
最佳答案
使用NullWritable
作为值,并发出“edge”作为键。
https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/io/NullWritable.html
关于java - 只在Mapper作业上写值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6679946/