Преобразование документов JSON в Parquet

У меня есть корпус документов JSON, и я хочу преобразовать/сохранить их в формате Parquet для эффективной обработки с использованием C++. У меня 2 вопроса по процессу:

Q1- Во всех подобных примерах и тестовых случаях, которые я нашел в Интернете для преобразования данных в формат Parquet (например, this), кажется, что схема должна быть определена заранее. Однако мои документы JSON не соответствуют единой/фиксированной схеме. Мне просто интересно, действительно ли определение схемы является требованием или нет (поскольку я предполагаю, что Parquet предназначен для эффективной поддержки неструктурированных данных с вложением и необязательными значениями).

Q2- Почти все доступные примеры используют библиотеки Java. Однако я ищу эффективный способ сделать такое преобразование на С++. Любой намек/предложение для этого? (Я начал просматривать репозиторий Parquet-cpp и его тестовые примеры, но мне интересно, есть ли является более кратким примером с минимальным количеством доступных зависимостей).


person Pouria    schedule 11.10.2016    source источник


Ответы (1)


A1: Parquet поддерживает вложенные и необязательные значения, но вам необходимо заранее предоставить определение схемы, в котором указаны эти вложенные/необязательные элементы данных.

A2: parquet-cpp — единственная известная мне библиотека C++ для Parquet. Конечно, это не единственный способ написать Parquet — Impala, например, реализует собственный стек Parquet, но вы, вероятно, не захотите этого делать.

person Zoltan    schedule 12.10.2016