更新时间:2025-06-11 GMT+08:00
        
          
          
        
      
      
      
      
      
      
      
      
  
      
      
      
        
配置parquet表的压缩格式
操作场景
在Spark中,Parquet表是一种非常常用的数据存储和处理方式。Parquet表在设计上通过压缩和编码优化,极大地减少了数据的存储空间并提高了数据的读取速度。
当前对于parquet表的压缩格式分以下两种情况进行配置:
- 对于分区表,需要通过parquet本身的配置项“parquet.compression”设置parquet表的数据压缩格式。如在建表语句中设置tblproperties:"parquet.compression"="snappy"。
 - 对于非分区表,需要通过“spark.sql.parquet.compression.codec”配置项来设置parquet类型的数据压缩格式。直接设置“parquet.compression”配置项是无效的,因为它会读取“spark.sql.parquet.compression.codec”配置项的值。当“spark.sql.parquet.compression.codec”未做设置时默认值为“snappy”,“parquet.compression”会读取该默认值。
 
因此,“spark.sql.parquet.compression.codec”配置项只适用于设置非分区表的parquet压缩格式。
配置参数
- 登录FusionInsight Manager系统。
    
    
详细操作请参考访问集群Manager。
 - 选择“集群 > 服务 > Spark2x/Spark > 配置”,单击“全部配置”,搜索并调整以下参数。
    
    
表1 参数介绍 参数
参数说明
取值示例
spark.sql.parquet.compression.codec
对于非分区parquet表,设置其存储文件的压缩格式。
取值范围:
- none:不压缩,适合已经压缩的数据或对存储空间不敏感的场景。
 - uncompressed:不压缩,适合进行快速读取,但会占用较多的存储空间。
 - snappy:压缩比较快,压缩比适中,是默认值,适用于大多数场景。
 - gzip:压缩比高,但压缩和解压速度较慢。
 - lz4:压缩比适中,压缩和解压速度较快。
 - zstd:压缩比高,压缩和解压速度较快,适用于需要高压缩比但又希望保持较好性能的场景。
 
snappy
 
- 修改参数配置后,单击“保存”,根据界面提示操作后,等待配置保存成功。
 - Spark服务端配置更新后,如果“配置状态”为“配置过期”,则需重启组件以使配置生效。
    
    图1 修改Spark配置
    在Spark服务概览页面,选择“更多 > 重启服务/滚动重启服务”,验证管理员密码后,等待服务重启成功。
如果使用Spark客户端提交任务,修改了集群的参数“spark.sql.parquet.compression.codec”后,需要重新下载客户端才能使配置生效,请参考使用MRS客户端。
 
      组件重启期间将无法对外提供服务,可能会影响集群的上层业务正常运行,请在业务空闲期或确认操作无影响后再执行本操作。
 
   父主题: Spark Core企业级能力增强