1
下面是從的Hadoop字計數示例代碼示例:Hadoop的文本類設置方法
class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> {
private Text outputKey;
private IntWritable outputVal;
@Override
public void setup(Context context) {
outputKey = new Text();
outputVal = new IntWritable(1);
}
@Override
public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
StringTokenizer stk = new StringTokenizer(value.toString());
while(stk.hasMoreTokens()) {
outputKey.set(stk.nextToken());
context.write(outputKey, outputVal);
}
}
}
只有一個outputKey
實例。在while
循環中,outputKey
設置不同的單詞並被寫爲context
的密鑰。在整個<key, value>
對內是否共享outputKey
實例?
爲什麼不使用context.write(new Text(stk.nextToken()), new IntWritable(1))
?