任何人都可以解释为什么我们在下面的语句中用尖括号写入参数以及为什么我们在参数中定义输出键/值对。
public static class Map extends Mapper <LongWritable, Text, Text, IntWritable>
什么是上下文对象以及我们在下面的语句中使用的原因。
public void map(LongWritable key, Text value, Context context ) throws IOException, InterruptedException
答案 0 :(得分:0)
&LT;&GT;用于表示Java中的泛型。
映射器<LongWritable, Text, Text, IntWritable>
仅将<LongWritable,Text>
作为键,<Text,IntWritable>
作为值。如果您尝试向映射器提供任何其他可写类型,则会引发错误。
Context
上下文对象用于在Key-Values
中编写输出configuration, counters, cacheFiles
以及获取Mapper
等。
答案 1 :(得分:0)
添加@Vasu回答的内容..
Context存储对RecordReader
和RecordWriter
的引用。
每当context.getCurrentKey()
和context.getCurrentValue()
用于检索键和值对时,请求都会分配给RecordReader
。调用context.write()
时,会将其分配给RecordWriter
。
这里RecordReader
和RecordWrite
r实际上是抽象类。