我关注了这篇文章:用pythonmapper为hadoop流生成多输出文件的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;
}
}
暂无答案!
目前还没有任何答案,快来回答吧!