Hadoop使用MultipleOutputs输出多文件或者指定命名
@(HADOOP)[hadoop]
(一)输出多文件(未测试)
比如将不同国家的信息分别输出到一份对应的文件中。
1、在reduce或map类中创建MultipleOutputs对象,将结果输出
class reduceStatistics extends Reducer<Text, IntWritable, Text, IntWritable>{
//将结果输出到多个文件或多个文件夹
private MultipleOutputs<Text,IntWritable> mos;
//创建对象
protected void setup(Context context) throws IOException,InterruptedException {
mos = new MultipleOutputs<Text, IntWritable>(context);
}
//关闭对象
protected void cleanup(Context context) throws IOException,InterruptedException {
mos.close();
}
}
2、在map或reduce方法中使用MultipleOutputs对象输出数据,代替congtext.write()
Java代码 收藏代码
protected void reduce(Text key, Iterable<IntWritable> values, Context context)
throw