• 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

     

  • 相关阅读:
    JAVA代码审计-XSS漏洞分析
    工业路由器在工厂数字化的应用及价值
    Golang定时器
    Temp directory ‘C:\WINDOWS\TEMP‘ does not exist
    ps制作设计网站登录界面
    Linux进程管理和计划任务与系统备份恢复
    如何在页面中制作悬浮发布按钮弹窗
    OPTEE:TA命令操作的实现(三)
    家用摄像头怎么选:实用性,功能性以及性价比是关键
    轻松学会JavaScript事件
  • 原文地址:https://blog.csdn.net/langzitianya/article/details/127730004