从相同键MapReduce Hadoop的值中写入一个列表

时间:2014-06-15 17:27:06

标签: hadoop mapreduce

有谁知道如何在输出文件中写入一行中相同键的值列表? 例如,我有这个:(键,值) 0 [0,2,4,5], 1 [1,2,3] 我想要输出:

0 0 2 4 5 1 1 2 3

而不是

0 0 0 2 0 4

...等

1 个答案:

答案 0 :(得分:3)

只需将reducer中的所有值连接到一个字符串,然后将值写为Text。例如

public void reduce(IntWritable key, Iterable<IntWritable> values, Context context) ... {

    StringBuilder sb = new StringBuilder();

    for (IntWritable value : values) {
        sb.append(String.valueOf(value.get()) + " ");
    }

    context.write(key, new Text(sb.toString()));

}