Значение параметров Hadoop Mapper

Я новичок в Hadoop, и у меня есть вопрос о параметрах: пример подсчета слов см. ниже во фрагменте кода:

public static class TokenizerMapper
   extends Mapper<LongWritable, Text, Text, IntWritable> {

   .....

   public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException 
   {
       .......
   }
}

Я знаю, что параметр «значение» — это строка, прочитанная из файла, но что означает параметр «ключ»? чему он соответствует?

Почему это тип LongWritable?

Я потратил на это несколько часов, просматривая документ, может ли кто-нибудь помочь?


person chengdol    schedule 06.03.2018    source источник
comment
Между прочим, используемые ключи и значения ввода полностью зависят от InputFormat.   -  person OneCricketeer    schedule 06.03.2018


Ответы (1)


Ключ имеет тип LongWritable, потому что программа подсчета слов принимает ввод как TextInputFormat.

Согласно JavDoc для 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)

person Gyanendra Dwivedi    schedule 06.03.2018