Потоковый многострочный ввод Hadoop - PullRequest
1 голос
/ 24 июля 2010

Я использую Dumbo для некоторых заданий Hadoop Streaming.У меня есть несколько словарей JSON, каждый из которых содержит статью (многострочный текст) и некоторые метаданные.Я знаю, что Hadoop лучше всего работает с большими файлами, поэтому я хочу объединить все словари JSON в один файл.

Проблема в том, что я не знаю, как заставить Hadoop читать каждый словарь / статьюотдельное значение вместо разделения на новые строки.Как я могу сказать Hadoop использовать пользовательский разделитель записей?Или, может быть, я могу поместить все словари JSON в структуру данных списка и сделать так, чтобы Hadoop считал это?сможет справиться с этим?

Ответы [ 2 ]

1 голос
/ 17 августа 2010

Вы можете просто заменить все символы новой строки на spaecs в каждом словаре при объединении файлов JSON. Новая строка не имеет никакого особого значения в JSON, кроме пробельных символов.

0 голосов
/ 07 марта 2019

concatenated-json-mapreduce - это пользовательский формат ввода, и программа чтения записей будет разбивать объекты JSON на основе push / pop в открытых / закрывающих скобках.

Он был записан для обработкипотоковая передача JSON (а не JSON, разделенных символом новой строки), поэтому, если он правильно сформирован для объектов JSON, использующих \n вместо новых строк, он должен работать.

...