我想编写多个输出文件。
如何使用 Job 而不是 JobConf 来执行此操作?
创建基于密钥的输出文件名的简单方法
input data type
//key //value
cupertino apple
sunnyvale banana
cupertino pear
MultipleTextOutputFormat 类
static class KeyBasedMultipleTextOutputForma extends MultipleTextOutputFormat<Text, Text> {
@Override
protected String generateFileNameForKeyValue(Text key, Text value, String name) {
return key.toString() + "/" + name;
}
}
作业配置
job.setOutputFormat(KeyBasedMultipleTextOutputFormat.class);
运行此代码,您将在 HDFS 中看到以下文件,其中 /output 是作业输出目录:
$ hadoop fs -ls /output
/output/cupertino/part-00000
/output/sunnyvale/part-00000
希望有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)