こんにちは、私は Hadoop を学んでいます。ワード カウントの問題にカスタム パーティショナーを使用する方法の例が必要です。「A」で始まるすべての文字が最初のレデューサーに移動し、すべての文字「B」が2番目のレデューサーに移動するように、レデューサーを26に設定したい....
public class 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;