我正在学习 Apache Hadoop,并且正在查看 WordCount 示例 org.apache.hadoop.examples.WordCount. 。我已经理解这个例子,但是我可以看到变量 长可写密钥 未用于

(...)
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);
      }
    }
(...)

这个变量有什么用?有人能给我一个简单的例子吗?谢谢

有帮助吗?

解决方案

当的InputFormat是的TextInputFormat,关键是字节从当前输入文件的开头的偏移量。

值是简单的文本的线在该偏移量。

如果使用SequenceFileInputFormat,密钥将是任何被塞进了“记录的关键位置。这同样适用价值。

底线是它们键/值类型是依赖于输入类型(文本,序列文件,等)。

CKW

其他提示

我可能是错误的(我已读出的地图/减少教程,但没有用它为实际项目尚未),但我认为在一般它是输入条目的标识符;例如,元组(文件名,行号)。在这种特殊情况下,它是所谓的行号,这是不感兴趣的字数。如果这个想法是它可以用来,比如说,在每行,而不是每个文件的基础上总字数(或多个文件,如果没有钥匙包含的信息)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top