1)在全排序的基礎(chǔ)上實(shí)現(xiàn)
2)
ProvincePartitioner
public class ProvincePartitioner extends Partitioner<FlowBean, Text> {
? ? @Override
? ? public int getPartition(Text key, FlowBean value, int numPartitions) {
? ? ? ? //按照手機(jī)號前三位分區(qū)
? ? ? ? String prePhoneNum = key.toString().substring(0, 3);
? ? ? ? int partition = 4;
? ? ? ? if ("136".equals(prePhoneNum)) {
? ? ? ? ? ? partition = 0;
? ? ? ? } else if ("137".equals(prePhoneNum)) {
? ? ? ? ? ? partition = 1;
? ? ? ? } else if ("138".equals(prePhoneNum)) {
? ? ? ? ? ? partition = 2;
? ? ? ? } else if ("139".equals(prePhoneNum)) {
? ? ? ? ? ? partition = 3;
? ? ? ? }
? ? ? ? return partition;
? ? }
}
3)在FlowCountSortDriver中增加代碼
job.setPartitionerClass(ProvincePartitioner.class);
job.setNumReduceTasks(5);