Ввод-сопоставление пары ключ-значение в Hadoop

Обычно мы пишем маппер в виде:

public static class Map extends Mapper<**LongWritable**, Text, Text, IntWritable>

Здесь пара ключ-значение ввода для преобразователя<LongWritable, Text> - насколько я знаю, когда маппер получает входные данные, он проходит строка за строкой - поэтому ключ для маппера обозначает номер строки - пожалуйста, исправьте меня, если я ошибаюсь.

Мой вопрос: если я дам пару ввода ключ-значение для картографа как<Text, Text> тогда это дает ошибку

 java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to org.apache.hadoop.io.Text

Обязательно ли указывать входную пару ключ-значение маппера как<LongWritable, Text> - если да, то почему? если нет то в чем причина ошибки? Можете ли вы помочь мне понять правильную причину ошибки?

Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос