public static class Map extends Mapper<Text, Text, Text, Text> {
我多年来第一次使用Java开发。我正在Hadoop中实现一些map reduce方法。有人可以解释这个类定义中<Text, Text, Text, Text>
的要点吗?到底是做什么的?
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);
}
}
}
答案 0 :(得分:3)
documentation提供了非常简洁的细分。
public class Mapper<KEYIN,VALUEIN,KEYOUT,VALUEOUT>
以你的例子......
KEYIN
是Object
VALUEIN
是Text
KEYOUT
是Text
VALUEOUT
是IntWritable
我不熟悉Hadoop的方式,但是如果我不得不冒险猜测,你接受Object
类型的密钥,类型为Text
的值,并输出一个类型为Text
的密钥,类型为IntWritable
的值。
<Text, Text, Text, Text>
绑定的类型也是如此,除了所有 - 键和值 - 都是Text
。