1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| package com.matrix.flowsums;
import java.util.HashMap;
import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Partitioner;
public class ProvincePartitioner extends Partitioner<Text, FlowBean> {
static HashMap<String, Integer> provinceMap = new HashMap<String, Integer>();
static { provinceMap.put("135", 0); provinceMap.put("136", 1); provinceMap.put("137", 2); provinceMap.put("138", 3); provinceMap.put("139", 4); }
@Override public int getPartition(Text key, FlowBean value, int numPartitions) {
System.out.println("key.toString():"+key.toString()); System.out.println("key.toString().substring(0, 3):"+key.toString().substring(0, 3));
Integer code = provinceMap.get(key.toString().substring(0, 3));
return code == null ? 5 : code; }
}
|