最近,我正在閱讀hadoop的權威指南。 我有兩個問題:這對Text.hashCode()和Interger.MAX_VALUE有什麼意義?
1.I看到一塊一個自定義分區程序代碼:
public class KeyPartitioner extends Partitioner<TextPair, Text>{
@Override
public int getPartition(TextPair key, Text value, int numPartitions){
return (key.getFirst().hashCode()&Interger.MAX_VALUE)%numPartitions;
}
}
這是什麼意思爲& Integer.MAX_VALUE的?爲什麼要使用&運算符?
2.我也想寫一個IntWritable的自定義分區程序。那麼是否可以直接使用key.value%numPartitions?
'&'是按位與。 – Maroun
@MarounMaroun是的,我知道,所以他們使用散列碼和max_value保持散列碼低於max_value? – JoJo
爲了保持積極,因爲負面分區顯然是無稽之談。 –