Sup*_*ohn 22 hadoop apache-pig hdfs parquet
我有一个存储在HDFS中的文件 part-m-00000.gz.parquet
我试图运行,hdfs dfs -text dir/part-m-00000.gz.parquet但它已经压缩,所以我运行gunzip part-m-00000.gz.parquet但它没有解压缩文件,因为它无法识别.parquet扩展名.
如何获取此文件的架构/列名称?
Urv*_*ida 30
您将无法使用hdfs dfs -text"打开"该文件,因为它不是文本文件.与文本文件相比,Parquet文件以非常不同的方式写入磁盘.
同样,Parquet项目提供镶木地板工具来完成您正在尝试的任务.打开并查看架构,数据,元数据等.
查看镶木地板工具项目(简单地说,就是一个jar文件.) 镶木地板工具
Cloudera也支持并为Parquet做出了巨大贡献,也有一个很好的页面,其中包含使用镶木地板工具的例子.您的用例的该页面的示例是
parquet-tools schema part-m-00000.parquet
Run Code Online (Sandbox Code Playgroud)
查看Cloudera页面.将Parquet文件格式与Impala,Hive,Pig,HBase和MapReduce一起使用
sha*_*359 14
Parquet CLI: \n parquet-cli是 parquet-tools 的轻量级替代品。
\npip install parquet-cli //installs via pip\nparq filename.parquet //view meta data\nparq filename.parquet --schema //view the schema\nparq filename.parquet --head 10 //view top n rows\nRun Code Online (Sandbox Code Playgroud)\n该工具将提供有关 parquet 文件的基本信息。
\n更新(替代方案):
\nDuckDB 具有CLI 工具(适用于 Linux、Windows、macOS 的预构建二进制文件),可用于从命令行查询镶木地板数据。
\nPS C:\\Users\\nsuser\\dev\\standalone_executable_binaries> ./duckdb\nConnected to a transient in-memory database.\nRun Code Online (Sandbox Code Playgroud)\n阅读 Parquet 架构。
\nD DESCRIBE SELECT * FROM READ_PARQUET(\'C:\\Users\\nsuser\\dev\\sample_files\\userdata1.parquet\');\nOR\nD SELECT * FROM PARQUET_SCHEMA(\'C:\\Users\\nsuser\\dev\\sample_files\\userdata1.parquet\');\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 column_name \xe2\x94\x82 column_type \xe2\x94\x82 null \xe2\x94\x82 key \xe2\x94\x82 default \xe2\x94\x82 extra \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 registration_dttm \xe2\x94\x82 TIMESTAMP \xe2\x94\x82 YES \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 id \xe2\x94\x82 INTEGER \xe2\x94\x82 YES \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 first_name \xe2\x94\x82 VARCHAR \xe2\x94\x82 YES \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 salary \xe2\x94\x82 DOUBLE \xe2\x94\x82 YES \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\nRun Code Online (Sandbox Code Playgroud)\n有关 DuckDB 的更多信息请参见此处。
\n如果您的 Parquet 文件像我一样位于 HDFS 或 S3 中,您可以尝试以下操作:
高密度文件系统
parquet-tools schema hdfs://<YOUR_NAME_NODE_IP>:8020/<YOUR_FILE_PATH>/<YOUR_FILE>.parquet
Run Code Online (Sandbox Code Playgroud)
S3
parquet-tools schema s3://<YOUR_BUCKET_PATH>/<YOUR_FILE>.parquet
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
小智 6
如果您使用 Docker,您还可以在容器中运行 parquet-tools:
docker run -ti -v C:\file.parquet:/tmp/file.parquet nathanhowell/parquet-tools schema /tmp/file.parquet
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43523 次 |
| 最近记录: |