java - 在HADOOP映射中使用泛型可减少问题

标签 java generics hadoop

我的问题对于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>,其中前两个类LongWritableText表示Mapper类期望读取的输入键和值,而后两个类TextLongWritable表示输出键,值类,预计会发出map方法。

通过thread讨论,可以更深入地了解为什么在MapReduce中实现了泛型。另外,此JIRA Issue提供了更多信息。

关于java - 在HADOOP映射中使用泛型可减少问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47944705/

相关文章:

Java Class.cast() 与强制转换运算符

java - 如何找到引用方法的第一个声明方法

java - 为什么这些类型不兼容赋值,如何定义赋值兼容的类?

hadoop - Spark Controller通过ambari安装失败

java - Netbeans 中出现重复的 jframe

java - 在 Android 中使用接口(interface)回调

hadoop - 百分位数函数在 Hive 中如何工作?

hadoop - Oozie服务器不是以hadoop 0.23.0开头

java - 使用循环和结果集进行简单验证

java - PHP 脚本服务器端不向 Android 应用程序返回任何内容