Задание mapreduce с вводом простого текста и выводом avro - PullRequest
6 голосов
/ 15 марта 2012

Я довольно озадачен использованием Avro с уменьшением карты и не могу найти хорошие учебники, которым нужно следовать.

Кажется, что классы, такие как AvroJob и AvroMapper, ориентированы на проблемы, когда и вход, и выход являются данными Avroфайлы.А как насчет того, когда ваш ввод представляет собой просто текст?

В частности:

Мой преобразователь принимает ключи LongWritable и текстовые значения в качестве ввода.Он излучает текстовые ключи и значения MyAvroRecord.

Мой редуктор принимает в качестве входных данных текстовые ключи и итератор MyAvroRecords и генерирует текстовые ключи и значения MyAvroRecord.

Как получить OutputFormat, который записывает эти текстовые ключи и значения MyAvroRecord в файл?

Приветствия, Дейв

Ответы [ 2 ]

6 голосов
/ 21 марта 2012

Хорошо, я понял это.

Вместо того, чтобы отображать, который выводит текстовые ключи и значения MyAvroRecord, мне нужен был тот, который создавал ключи AvroKey и значения AvroValue. Это позволило передать результаты прямо в AvroReducer, и я мог просто использовать AvroJob.setOutputSchema () для обработки вывода (мне вообще не нужно было реализовывать OutputFormat).

0 голосов
/ 22 января 2014

Другим способом приближения может быть: вывод mapper не должен быть AvroKey и AvroValue Это могут быть ваши общие типы вывода, которые становятся входом для вашего редуктора. В редукторе мы можем сделать преобразование Avro. Установив тип выходного формата Avro.

С уважением, sujoy

...