hadoop流中的多输出文件

时间:2017-04-20 03:17:14

标签: python hadoop mapreduce

我关注这篇文章: 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;
        }
  }

0 个答案:

没有答案