查找Hive / Impala表的压缩详细信息

时间:2018-01-22 12:37:24

标签: apache-spark hive pyspark codec impala

我将表格从一种格式转换为另一种格式,从未压缩到压缩(Snappy,Gzip等)。

在我读到这篇文章之前,我以为我可以依赖describe [formatted|extended] tblnameDESCRIBE Statement

说明

  

压缩字段不是表格是否包含压缩数据的可靠指标。它通常始终显示“否”,因为压缩设置仅在加载数据的会话期间应用,并且不会与表元数据一起持久存储。

如何确定表是否已压缩以及使用了哪种编解码器?我不介意使用Spark获取该信息。

3 个答案:

答案 0 :(得分:0)

回答我的问题:

对于Avro数据文件:avro-tools getmeta filename

对于Parquet数据文件:parquet-tools meta filename

答案 1 :(得分:0)

正如您所说的,“描述格式”和“显示创建表”方法并不总是保证包含正确的压缩格式信息。

识别压缩编解码器和存储格式的最可靠方法是转到表文件的HDFS位置,并查看其扩展名:

hdfs dfs -ls -r /hdfspath/

例如,以活泼的方式压缩的ORC文件应以.snappy.orc结尾。

答案 2 :(得分:-1)

首先想到的是检查这个Hive / MR属性:

hive.exec.compress.output=
mapreduce.output.fileoutputformat.compress=
mapreduce.output.fileoutputformat.compress.codec=   
mapreduce.output.fileoutputformat.compress.type=