Вот фрагмент из реализации задания по подсчету слов, опубликованного из учебника Apache
public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable>{
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
}
Есть ли какая-либо польза от повторного использования поля Text word
?
Я видел, как это делается во многих программах Hadoop, создание такого класса настолько тяжело, что повторное использование приводит к повышению производительности. Если нет, то почему люди это делают, а не что-то вроде context.write(new Text(itr.nextToken()), one);