cdh3u3 hadoop 0.20.2 MultipleOutputs多输出文件怎么实现

2023-04-07 22:43:00 hadoop 文件 输出

cdh3u3 hadoop 0.20.2 MultipleOutputs多输出文件怎么实现

在hadoop 0.20.2版本中,MultipleOutputs类提供了一种有效的方法来将reduce()函数的输出分别写入多个文件。它提供了一个静态方法,可以在reduce()函数中调用,该方法接受一个Text对象和一个IntWritable对象,并将它们分别写入到指定的文件中。

下面是一个使用MultipleOutputs类的简单示例:

public static class Reduce extends Reducer { private MultipleOutputs multipleOutputs; @Override public void setup(Context context) throws IOException, InterruptedException { multipleOutputs = new MultipleOutputs(context); } @Override public void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } multipleOutputs.write(key, new IntWritable(sum), key.toString()); } @Override protected void cleanup(Context context) throws IOException, InterruptedException { multipleOutputs.close(); } }

相关文章