【问题标题】:Finding Hive/Impala table's compression details查找 Hive/Impala 表的压缩详细信息
【发布时间】:2018-07-01 02:19:17
【问题描述】:

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

我以为我可以依靠describe [formatted|extended] tblname 直到我读到这篇文章。 DESCRIBE Statement

说明

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

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

【问题讨论】:

    标签: apache-spark hive pyspark codec impala


    【解决方案1】:

    回答我的问题:

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

    Parquet 数据文件:parquet-tools meta filename

    【讨论】:

    • 对,你需要自己检查数据文件。
    【解决方案2】:

    正如您所说,“describe formatted”和“show create table”方法并不总是保证包含正确的压缩格式信息。

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

    hdfs dfs -ls -r /hdfspath/
    

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-07
        • 2022-01-17
        • 1970-01-01
        • 2015-11-02
        • 2021-06-01
        • 1970-01-01
        • 2021-08-19
        • 1970-01-01
        相关资源
        最近更新 更多