У меня есть набор документов JSON, и я хочу преобразовать / сохранить их в формате Parquet для эффективной обработки с использованием C ++.
У меня есть 2 вопроса относительно процесса:
Q1- Во всех похожих примерах и тестовых случаях, которые я нашел в Интернете для преобразования данных в формат паркета (например, этот), кажется, что схема должна быть определена заранее. Однако мои документы JSON не соответствуют единой / фиксированной схеме. Мне просто интересно, действительно ли определение схемы является обязательным требованием или нет (как я полагаю, Parquet разработан для эффективной поддержки неструктурированных данных с помощью вложенности и необязательных значений).
Q2 — Почти все доступные примеры используют библиотеки Java. Тем не менее, я ищу эффективный способ сделать такое преобразование в C ++. Любой намек / предложение для этого? (Я начал смотреть на Parquet-cpp репо и его тестовые случаи, но мне интересно, есть ли более краткий пример с минимальными доступными зависимостями).
A1: Parquet поддерживает вложенность и необязательные значения, но вам нужно заранее предоставить определение схемы, которое определяет эти вложенные / необязательные элементы данных.
A2: parquet-cpp — единственная библиотека C ++, которую я знаю для Parquet. Конечно, это не единственный способ написания Parquet — например, Impala реализует свой собственный стек Parquet, но вы, вероятно, не хотите этого делать.
Других решений пока нет …