Запись выходных данных паркета в потоковом задании Hadoop
Есть ли способ записать текстовые данные в файл паркета с помощью потоковой передачи hadoop с использованием Python.
По сути, у меня есть строка, отправляемая из IdentityMapper, которую я хочу сохранить в виде файла паркета.
входы или примеры были бы очень полезны
1 ответ
Я подозреваю, что нет встроенного способа сделать это, используя встроенную потоковую передачу Hadoop (я не смог ее найти), однако, в зависимости от ваших наборов данных, вы можете использовать сторонний пакет как
https://github.com/whale2/iow-hadoop-streaming
Чтобы сгенерировать Parquet из JSON, ваш потоковый код должен выплевывать json, и вместе со схемой AVRO вы можете написать свой Parquet, используя ParquetAsJsonOutputFormat
,
Обратите внимание, что на этом этапе пакет выше имеет некоторые ограничения (например, возможность использовать только примитивные типы и т. Д.).
В зависимости от характера ваших данных вы также можете играть с Kite SDK, как кратко описано здесь:
https://dwbigdata.wordpress.com/2016/01/31/json-to-parquet-conversion/
и здесь:
https://community.cloudera.com/t5/Kite-SDK-includes-Morphlines/JSON-to-Parquet/td-p/20630
ура