我关注这篇文章: Multiple Output Files for Hadoop Streaming with Python Mapper 用于在hadoop流中生成多输出文件,我也是这样做的。 所以我想要我的结构: 日期 - :
---代码= 1个
---代码= 2
---代码= 3个
日期 - :
:
:
但是在code = 1和其他目录中,所有内容都只写入一个文件,因为我的数据非常大,我的工作需要很长时间才能完成。 任何解决方法???
package com.custom;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.lib.MultipleTextOutputFormat;
import java.lang.*;
public class CustomMultiOutputFormat extends MultipleTextOutputFormat<Text, Text> {
@Override
protected String generateFileNameForKeyValue(Text key, Text value, String leaf) {
String key_temp,date,code,key_final;
key_temp=key.toString();
String[] arr=key_temp.split("/");
date="date=" +arr[0];
code ="code="+arr[1];
key_final=date+"/"+code;
Text t1 = new Text(key_final);
return new Path(t1.toString(), leaf).toString();
}
@Override
protected Text generateActualKey(Text key, Text value) {
return null;
}
}