Как получить имена схем / столбцов из файла parquet?

у меня есть файл, хранящийся в HDFS как part-m-00000.gz.parquet

Я пытался бежать hdfs dfs -text dir/part-m-00000.gz.parquet но он сжат, поэтому я побежал gunzip part-m-00000.gz.parquet но он не распаковывает файл, так как он не распознает

3 ответов


вы не сможете "открыть" файл с помощью hdfs DFS-text, потому что это не текстовый файл. Паркетные файлы записываются на диск очень по-разному по сравнению с текстовыми файлами.

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

Проверьте проект parquet-tool (который проще говоря, файл jar.) паркет-инструменты

Также Cloudera который поддерживает и вносит большой вклад в паркет, также имеет хорошую страницу с примерами использования паркетных инструментов. Пример с этой страницы для вашего варианта использования -

parquet-tools schema part-m-00000.parquet

проверка страницы Cloudera. использование формата файла паркета с Impala, Hive, Pig, HBase и MapReduce


Если ваши паркетные файлы расположены в HDFS или S3, как я, вы можете попробовать что-то вроде следующего:

файловой системы HDFS

parquet-tools schema hdfs://<YOUR_NAME_NODE_IP>:8020/<YOUR_FILE_PATH>/<YOUR_FILE>.parquet

S3

parquet-tools schema s3://<YOUR_BUCKET_PATH>/<YOUR_FILE>.parquet

надеюсь, что это помогает.


поскольку это не текстовый файл, вы не можете сделать на нем "-text". Вы можете легко прочитать его через Hive, даже если у вас нет установленных parquet-tools, если вы можете загрузить этот файл в таблицу Hive.