码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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

     

  • 相关阅读:
    【二十三】springboot整合spring事务详解以及实战
    前端二维码图片解析图片识别/网络图片解析成链接/图片网络链接转本地链接(Js/Vue/Jquery)
    类和对象8:数值方法
    CentOS7安装flink1.17完全分布式
    Ajax--form表单与模板引擎--通过Ajax提交表单数据及案例 - 评论列表
    Jetpack组件(二)不推荐使用的DataBinding
    线程池核心原理浅析
    两种PDF密码都忘记了,怎么办?
    微服务学习|Feign:快速入门、自定义配置、性能优化、最佳实践
    php redis 操作手册
  • 原文地址:https://blog.csdn.net/langzitianya/article/details/127730004
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号