multipleoutput文件

dzhpxtsq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(112)

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

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题