Я пытаюсь выполнить некоторую предварительную обработку данных, которые будут переданы в LucidWorks Big Data для индексирования. LWBD принимает SolrXML в виде файлов Sequencefile. Я хочу, чтобы создать скрипт Свиньи, который будет принимать все файлы SolrXML в каталоге и выводить их в формате нативную функцию PigStorage()
нагрузкиSequencefiles, которые отображают один ключ для нескольких значений.
filename_1 => <here goes some XML>
...
filename_N => <here goes some more XML>
свинью может автоматически создать столбец, который включает в себя имя файла, из которого данные были извлечены, которые в идеале будет выглядеть следующим образом:
{"filename_1", "<here goes some XML>"}
...
{"filename_N", "<here goes some more XML>"}
Однако PigStorage() также автоматически использует «\ п» в качестве строки разделителей, так что я на самом деле в конечном итоге представляет собой мешок, который выглядит следующим образом:
{"filename_1", "<some partial XML from file 1>"}
{"filename_1", "<some more partial XML from file 1>"}
{"filename_1", "<the end of file 1>"}
...
Уверен, что вы получили картину. Мой вопрос в том, должен ли я записать этот пакет в SequenceFile, как он будет читаться другими приложениями? Может ли он быть объединен как
"filename_1" => "<some partial XML from file 1>
<some more partial XML from file 1>
<the end of file 1>"
, по умолчанию обработка приложения я его кормлю? Или есть какая-то постобработка, которую я могу сделать, чтобы получить ее в этом формате? Спасибо за помощь.
Как вы создаете SequenceFile? E.X. Какую Pig Latin/UDF вы используете? – mr2ert