'的用途是什么;键K1';在org.apache.hadoop.mapred.Mapper中?
我正在学习ApacheHadoop,我正在看WordCount示例。我已经理解了这个示例,但是我可以看到变量LongWritable key没有在中使用'的用途是什么;键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
(...)
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