嗨,我正在学习 hadoop,我想要一个关于如何使用自定义分区器解决字数问题的示例。我希望将减速器设置为 26,以便所有以“A”开头的字符将转到第一个减速器,所有字符“B”到第二个减速器,依此类推....
公共类 PersonPartitioner 扩展 Partitioner{
@Override
public int getPartition(Text key, IntWritable Val, int numOfReducer) {
String line = key.toString();
String [] splits = line.trim().replaceAll("[0-9]", "").split("\\W+");
for(String str:splits){
if(null==str||str.trim().length()<1||""==str){
}else{String ch = str.substring(0, 1);
character.set(ch);
}
}
return Math.abs(character.charAt(0).hashCode()*127)%numOfReducer;