'的用途是什么;键K1';在org.apache.hadoop.mapred.Mapper中?

'的用途是什么;键K1';在org.apache.hadoop.mapred.Mapper中?,hadoop,mapreduce,Hadoop,Mapreduce,我正在学习ApacheHadoop,我正在看WordCount示例。我已经理解了这个示例,但是我可以看到变量LongWritable key没有在中使用 (...) public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOEx

我正在学习ApacheHadoop,我正在看WordCount示例。我已经理解了这个示例,但是我可以看到变量LongWritable key没有在中使用

(...)
public void map(LongWritable key, Text value, 
                    OutputCollector<Text, IntWritable> output, 
                    Reporter reporter) throws IOException {
      String line = value.toString();
      StringTokenizer itr = new StringTokenizer(line);
      while (itr.hasMoreTokens()) {
        word.set(itr.nextToken());
        output.collect(word, one);
      }
    }
(...)
(…)
公共无效映射(可长写键、文本值、,
输出采集器输出,
(记者)抛出IOException{
字符串行=value.toString();
StringTokenizer itr=新的StringTokenizer(行);
而(itr.hasMoreTokens()){
set(itr.nextToken());
输出。收集(字,一);
}
}
(...)
这个变量的用途是什么?有人能给我一个简单的例子,在哪里使用它吗?
谢谢

我可能错了(我已经阅读了map/reduce教程,但还没有将其用于实际项目),但我认为它通常是输入条目的标识符;例如,tuple(文件名、行号)。在这个特殊的例子中,它应该是行号,对字数没有兴趣。如果想法是(比如)按每行而不是按文件(或多个文件,如果key确实包含该信息)聚合字数,则可以使用它。

如果InputFormat是TextInputFormat,则key是从当前输入文件开始的字节偏移量

值只是该偏移处的文本行

如果使用SequenceFileInputFormat,则键将是填充到“记录”键位置的任何内容。价值也是如此

底线是它们的键/值类型取决于输入类型(文本、序列文件等)

ckw