更新时间: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企业级能力增强