• spark sql保存hive表时的压缩设置


    根据查看spark sql源码(3.1.3)的源码,找到hive表输出文件压缩格式的设定方式:

    结论:

         1. 如果hive输出表的属性里定义了压缩格式,则直接使用表定义的格式,具体属性为:

    文件输出格式表属性
    textcompression
    csvcompression  >  codec
    jsoncompression
    parquetcompression  >  parquet.compression
    orccompression  >  orc.compress

         2. 如果hive输出表的属性里没有定义压缩格式,则以配置项的设置为准,具体为:

    文件输出格式配置项
    orc

    spark.sql.orc.compression.codec

      可用值:"none", "uncompressed", "snappy", "zlib", "lzo"

    parquetspark.sql.parquet.compression.codec

      可用值:"none", "uncompressed", "snappy", "gzip", "lzo", "lz4", "brotli", "zstd"

    orc,parquet以外

    hive.exec.compress.output

      可用值:"true","false"
    mapreduce.output.fileoutputformat.compress.codec
      可用值:压缩编码类名,例如:"org.apache.hadoop.io.compress.GzipCodec"
    mapreduce.output.fileoutputformat.compress.type

      可用值:"RECORD","BLOCK","NONE"

    第一步,初步设定压缩格式,优先级低于表属性

    spark sql源码 (3.1.3):org.apache.spark.sql.hive.execution.SaveAsHiveFile

     spark sql源码 (3.1.3):org.apache.spark.sql.hive.execution.HiveOptions

     spark sql源码 (3.1.3):org.apache.spark.sql.execution.datasources.parquet.ParquetOptions

    spark sql源码 (3.1.3):org.apache.spark.sql.execution.datasources.orc.OrcOptions 

     第二步,具体输出格式内部定义,以表属性优先

       spark sql源码 (3.1.3):org.apache.spark.sql.hive.execution.SaveAsHiveFile

     spark sql源码 (3.1.3):org.apache.spark.sql.execution.datasources.text.TextFileFormat

    spark sql源码 (3.1.3):org.apache.spark.sql.execution.datasources.text.TextOptions

     

     spark sql源码 (3.1.3):org.apache.spark.sql.catalyst.util.CompressionCodecs

     

  • 相关阅读:
    操作系统第一章王道习题_系统概述_总结易错知识点
    c++还原简单的vector
    linux之alias别名
    提高篇(八):扩展Processing功能:从库使用到跨平台应用
    DataX-web安装部署和使用
    windows10环境下的RabbitMQ详细安装步骤(图文)
    侧边栏左右拖拽
    SOME/IP 协议介绍(三)参数和数据结构的序列化
    当初吃土建起来的“中台”,现在为啥不香了?
    盘点IDEA的超实用快捷键以及插件
  • 原文地址:https://blog.csdn.net/langzitianya/article/details/127730004