我目前正在从事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/

10-10 06:15