我将表格从一种格式转换为另一种格式,从未压缩到压缩(Snappy,Gzip等)。
在我读到这篇文章之前,我以为我可以依赖describe [formatted|extended] tblname
。 DESCRIBE Statement
说明
压缩字段不是表格是否包含压缩数据的可靠指标。它通常始终显示“否”,因为压缩设置仅在加载数据的会话期间应用,并且不会与表元数据一起持久存储。
如何确定表是否已压缩以及使用了哪种编解码器?我不介意使用Spark获取该信息。
答案 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=