Ввод-сопоставление пары ключ-значение в 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>
- если да, то почему? если нет то в чем причина ошибки? Можете ли вы помочь мне понять правильную причину ошибки?
Заранее спасибо.