MapReduce自定义分区

分区

分区的工作发生在Shuffle阶段,即map之后reduce之前。

自定义分区步骤

在这里插入图片描述
Partitioner泛型的类型为map的输出类型

相关代码

package MapReduceFlow;

import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Partitioner;

public class MyPartitioner extends Partitioner<Text,FlowBean> {

    @Override
    public int getPartition(Text text, FlowBean flowBean, int numPartitions) {
        String telNum = text.toString();
        String preStr = telNum.substring(0,3);

        if("131".equals(preStr)){
            return 0;
        }
        else if("135".equals(preStr)){
            return 1;
        }
        else if("137".equals(preStr)){
            return 2;
        }
        else{
            return 3;
        }
    }
}

注意

在这里插入图片描述

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页