我的问题对于HADOOP用户而言似乎很愚蠢。但是我对在 map 减少问题中使用泛型感到很困惑,例如“WORD COUNT”。
我知道,泛型被基本用于类型转换和类型安全。但是我不能在这里将这个概念联系起来。
在字数问题上,
public class WordCountMapper extends
Mapper<LongWritable, Text, Text, LongWritable> {
@Override
protected void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
// TODO Auto-generated method stub
...
}
}
}
请有人在这里清除我对泛型的使用。如果我在问这个问题时犯了任何错误,请纠正我。
现在,我了解将泛型用于键值对(KEY IN,VALUE IN,KEY OUT和VALUE OUT)。但是我仍然不清楚,为什么在这里泛型用于键值对。不是
还有其他方法可以做到这一点。 在这里使用泛型有什么好处?
谢谢!
最佳答案
MapReduce在Mapper和Reducer中专门使用泛型来指定期望读入和写出哪种输入和输出。
在示例中,您指定了WordCountMapper
扩展了Mapper
类,并带有指定的泛型Mapper<LongWritable, Text, Text, LongWritable>
,其中前两个类LongWritable
和Text
表示Mapper类期望读取的输入键和值,而后两个类Text
和LongWritable
表示输出键,值类,预计会发出map
方法。
通过thread讨论,可以更深入地了解为什么在MapReduce中实现了泛型。另外,此JIRA Issue提供了更多信息。
关于java - 在HADOOP映射中使用泛型可减少问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47944705/