Как получить имена схем / столбцов из файла 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.