
# 配置parquet表的压缩格式
#### 操作场景
在Spark中，Parquet表是一种非常常用的数据存储和处理方式。Parquet表在设计上通过压缩和编码优化，极大地减少了数据的存储空间并提高了数据的读取速度。
当前对于parquet表的压缩格式分以下两种情况进行配置：
1. 对于分区表，需要通过parquet本身的配置项"parquet.compression"设置parquet表的数据压缩格式。如在建表语句中设置tblproperties："parquet.compression"="snappy"。
2. 对于非分区表，需要通过"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压缩格式。
#### 配置参数
1. 登录FusionInsight Manager系统。 
   详细操作请参考[访问集群Manager](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2124.html)。
   
   
2. 选择"集群 \> 服务 \> Spark2x/Spark \> 配置"，单击"全部配置"，搜索并调整以下参数。 
   表1参数介绍 
   | **参数**                              | **参数说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 取值示例   |
   |:---|:---|:---|
   | spark.sql.parquet.compression.codec | 对于非分区parquet表，设置其存储文件的压缩格式。 取值范围： - none：不压缩，适合已经压缩的数据或对存储空间不敏感的场景。  - uncompressed：不压缩，适合进行快速读取，但会占用较多的存储空间。  - snappy：压缩比较快，压缩比适中，是默认值，适用于大多数场景。  - gzip：压缩比高，但压缩和解压速度较慢。  - lz4：压缩比适中，压缩和解压速度较快。  - zstd：压缩比高，压缩和解压速度较快，适用于需要高压缩比但又希望保持较好性能的场景。   | snappy |
      
   
   

3. 修改参数配置后，单击"保存"，根据界面提示操作后，等待配置保存成功。
4. Spark服务端配置更新后，如果"配置状态"为"配置过期"，则需重启组件以使配置生效。 
   图1修改Spark配置   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000002305123228.png "点击放大")
   在Spark服务概览页面，选择"更多 \> 重启服务/滚动重启服务"，验证管理员密码后，等待服务重启成功。
   如果使用Spark客户端提交任务，修改了集群的参数"spark.sql.parquet.compression.codec"后，需要重新下载客户端才能使配置生效，请参考[使用MRS客户端](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2126.html)。
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/warning_3.0-zh-cn.png)
   组件重启期间将无法对外提供服务，可能会影响集群的上层业务正常运行，请在业务空闲期或确认操作无影响后再执行本操作。
   
   
 
