Если вы используете TextInputFormat
, вы получите <LongWritable, Text>
в качестве ввода картографа. Часть LongWritable
(или ключ) - это позиция строки в файле (я думаю, что это не номер строки, а позиция от начала файла). Вы можете использовать эту часть, чтобы отслеживать, какая строка была первой. Например, преобразователь может выводить <Filename, TextPair(Position, Line)>
как вывод вместо <Filename, Line>
, как вы делаете сейчас. Затем вы можете отсортировать ключи, которые получает редуктор, на основе первой части пары (позиция), и вы должны вернуть строки в том же порядке.