通过 Impala 的 Parquet 压缩类型
Posted
技术标签:
【中文标题】通过 Impala 的 Parquet 压缩类型【英文标题】:Parquet compression type via Impala 【发布时间】:2016-04-07 07:50:04 【问题描述】:我们定义了很多 impala 表,并假设我们正在使用 Snappy 压缩。 (镶木地板文件)
然而,没有人真正知道我们在现有表上实际使用的压缩类型。
impala 文档似乎没有指定如何从现有表中获取压缩类型。
有没有办法通过 impala 找到使用的压缩类型?
【问题讨论】:
假设你可以使用DESCRIBE FORMATTED $table_name
,但the "Compressed:" field in that result is unreliable: "It typically always shows No, because the compression settings only apply during the session that loads data and are not stored persistently with the table metadata."
同意,在镶木地板上它只会显示“不”
【参考方案1】:
截至目前,Impala 中没有命令可以告诉您存储为镶木地板的表中使用的压缩类型,但有一种变通方法。您可以做的是查看表中的 parquet 文件之一,然后使用 parquet-tools 元命令查看正在使用的压缩。
-- step1) run hdfs dfs -ls to determine the location and name for a parquet file
hdfs dfs -ls /yourTableLocationPath
-- step2) parquet-tools really only works locally right now so you will need to copy the file to a local directory
hdfs dfs -get /yourTableLocationPath/yourFileName /yourLocalPath
-- step3) run parquet-tools meta command
parquet-tools meta /yourLocalPath/yourFileName
parquet-tools 元命令的输出将显示在行组输出下使用的压缩类型。
【讨论】:
以上是关于通过 Impala 的 Parquet 压缩类型的主要内容,如果未能解决你的问题,请参考以下文章
Hive/Impala 中压缩 parquet 文件(例如 gz.parquet)的外部表
Parquet 支持的 Hive 表:Impala 中不可查询的数组列