举例Reducer函数的输出文件要根据分类输出多个文件,如果是Mapper中输出同理,job和单文件输出设置一样
要点如下:
1、Reducer函数中设置多文件输出属性mos
private MultipleOutputs<Text, NullWritable> mos;
2、setup()方法中创建对象
mos = new MultipleOutputs(context);
3、reduce()方法中对每个类别的文件写入,三个参数分别是输出的key,value,以及类别命名。单文件输出时文件命名格式是“part-r-00000”,多文件命名则根据设置的参数命名"modelSum-r-00000"
mos.write(writeKey, NullWritable.get(), "modelSum");
4、cleanup()方法中关闭mos
mos.close();
public static class SummaryDayReduce extends Reducer<Text, IntWritable, Text, NullWritable> {
private IntWritable result = new IntWritable();
private MultipleOutputs<Text, NullWritable> mos;
@Override
protected void setup(Reducer<Text, IntWritable, Text, NullWritable>.Context context)