我正在写一个需要读3列的map函数。我有一个文本文件:
1234567 12234254 40
如何更改一个简单的wordcountMap器的stringtokenizer,使其能够在使用while循环时读取3行
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);
}
}
}
1条答案
按热度按时间b4wnujal1#
这段代码的工作方式与您想要的完全一样,但正如javadoc中所述
stringtokenizer是一个遗留类,尽管新代码中不鼓励使用它,但出于兼容性原因保留了它
相反,使用for循环