如何使用新的 Hadoop API 来使用 MultipleTextOutputFormat?

2024-04-26

我想编写多个输出文件。 如何使用 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(使用前将#替换为@)

如何使用新的 Hadoop API 来使用 MultipleTextOutputFormat? 的相关文章

随机推荐