分区
分区的工作发生在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;
}
}
}