如何使用新的Hadoop API使用MultipleTextOutputFormat? [英] How do I use the MultipleTextOutputFormat using the new Hadoop API?
本文介绍了如何使用新的Hadoop API使用MultipleTextOutputFormat?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想编写多个输出文件。
我如何使用Job而不是JobConf来做到这一点?
解决方案
一种简单的方法来创建基于键的输出文件名
<$输入数据类型
//键//值$ b $ cupertino苹果
sunnyvale香蕉
cupertino梨
/ code> MultipleTextOutputFormat类
静态类KeyBasedMultipleTextOutputForma扩展了MultipleTextOutputFormat< Text,Text> {
@Override
protected String generateFileNameForKeyValue(Text key,Text value,String name){
return key.toString()+/+ name;
code $
$ b $ p
job.setOutputFormat(KeyBasedMultipleTextOutputFormat.class);
运行此代码,您将在HDFS中看到以下文件,其中/ output是作业输出目录:
$ hadoop fs -ls / output
/ output / cupertino / part-00000
/输出/ sunnyvale / part-00000
希望它有帮助。
I would like to write multiple output files.
How do I do this using Job instead of JobConf?
解决方案 an easy way to to create key based output file names
input data type
//key //value
cupertino apple
sunnyvale banana
cupertino pear
MultipleTextOutputFormat class
static class KeyBasedMultipleTextOutputForma extends MultipleTextOutputFormat<Text, Text> {
@Override
protected String generateFileNameForKeyValue(Text key, Text value, String name) {
return key.toString() + "/" + name;
}
}
job config
job.setOutputFormat(KeyBasedMultipleTextOutputFormat.class);
Run this code and you’ll see the following files in HDFS, where /output is the job output directory:
$ hadoop fs -ls /output
/output/cupertino/part-00000
/output/sunnyvale/part-00000
hopes it helps.
这篇关于如何使用新的Hadoop API使用MultipleTextOutputFormat?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文