java—在hadoopMap中使用泛型可以减少问题

bttbmeg0  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(253)

我的问题对hadoop用户来说似乎很愚蠢。但我对在map reduce问题中使用泛型有点困惑,比如“字数”。
我知道泛型主要用于类型转换和类型安全。但我不能把这个概念联系起来。
在字数计算问题中,

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)。但我仍然不清楚,为什么这里使用泛型来表示键值对。难道没有其他方法可以做到这一点吗。在这里使用泛型有什么好处?
谢谢!

lztngnrs

lztngnrs1#

mapreduce在mapper和reducer中专门使用泛型来指定要读入和写出的输入和输出类型。
在本例中,您指定了 WordCountMapper 延伸 Mapper 用指定的泛型初始化 Mapper<LongWritable, Text, Text, LongWritable> 前两节课在哪里 LongWritable 以及 Text 表示Map器类希望读取的输入键和值,而最后两个类 Text 以及 LongWritable 表示类的输出键和值 map 方法应发出。
这个线程讨论提供了关于为什么在mapreduce中实现泛型的更多见解。此外,这个jira问题提供了更多的信息。

相关问题