Испускание формата avro из труб в Hadoop

Я должен программировать на C ++ для Hadoop, и я имею дело со сложной структурой выходного значения.
К сожалению, я не могу понять, как создать эту структуру в формате Avro в MapReduce.
Есть некоторые авторы, такие как DataFileWriter, и они хорошо работают для меня. Но все это не имеет смысла с точки зрения HDFS.

Как я излучаю структуру сейчас:

IOSerializer serializer;
context.emit(key, serializer.toString(output));

Этот пользовательский метод toString я написал сам (извините за название, я полностью из мира Java).
Это просто пользовательская сериализация в строку. Я действительно хочу немного совместимости здесь и решил использовать Avro.

Это код для записи Avro в файл:

avro::DataFileWriter<fusion_solve::graph> dfw("test.bin", schema);
dfw.write(output);
dfw.close();

То, что я хочу сделать, это что-то вроде этого:

IOSerializer serializer;
context.emit(serializer.toAvro(key, output));

На данный момент я буду счастлив получить в качестве выходных данных простую строку JSON, чтобы преобразовать ее позже.
Другой вариант для меня — написание пользовательского RecordWriter на Java. Но какой тип входных данных я должен использовать в этом случае, JSON?

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector