我是Hadoop的新手并对参数有疑问: 对于单词计数示例,请参阅下面的代码段:
public static class TokenizerMapper
extends Mapper<LongWritable, Text, Text, IntWritable> {
.....
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException
{
.......
}
}
我知道&#34;价值&#34;参数是从文件中读取的行,但&#34;键&#34;是什么?参数意思?它对应的是什么?
为什么它的类型是LongWritable?
我通过搜索文档浪费了几个小时,有人可以帮忙吗?
答案 0 :(得分:2)
密钥属于LongWritable
类型,因为wordcount程序将输入视为TextInputFormat
根据TextInputFormat
纯文本文件的InputFormat。文件分为几行。 换行或回车用于发出行尾信号。 键是文件中的位置,值是文本行..
根据定义,假设您的文字是
We are fine.
How are you?
All are fine.
然后输入到映射器
键:1
价值:We are fine.
键:14
值:How are you?
(第一行包含换行符约13个字符,因此行位置为14)
键:28
值:All are fine.
(第二行中还有大约13个字符,包括换行符,因此自文件开头以来的行位置为28)