关于map-reduce中的上下文对象



谁能解释一下为什么我们在下面的语句中把参数写在尖括号里,为什么我们在参数中定义输出键/值对?

public static class Map extends Mapper <LongWritable, Text, Text, IntWritable> 

什么是上下文对象,为什么我们在下面的语句中使用。

public void map(LongWritable key, Text value, Context context ) throws IOException, InterruptedException

再加上@Vasu的回答…

Context存储对RecordReaderRecordWriter的引用。当使用context.getCurrentKey()context.getCurrentValue()检索键值对时,请求被分配给RecordReader。当context.write()被调用时,它被赋值给RecordWriter

这里的RecordReaderRecordWriter实际上是抽象类

<>在Java中用于表示泛型

Mapper <LongWritable, Text, Text, IntWritable>只接受<LongWritable,Text>作为键,<Text,IntWritable>作为值。如果您尝试向映射器提供任何其他可写类型,这将抛出错误。

Context上下文对象用于写入输出Key-Values以及在Mapper中获取configuration, counters, cacheFiles等。

相关内容

  • 没有找到相关文章

最新更新