spark的压缩使用和简单介绍

本文详细介绍了Spark2.4.1版本中的压缩配置,包括RDD、Broadcast变量和SparkSQL的压缩设置。`spark.rdd.compress`控制RDD分区是否压缩,默认不压缩;`spark.broadcast.compress`默认开启,用于压缩广播变量以节省带宽和IO。在SparkSQL中,写入Parquet和ORC文件默认使用snappy压缩,可通过`spark.sql.parquet.compression.codec`和`spark.sql.orc.compression.codec`配置压缩格式。了解这些配置有助于优化Spark应用的性能和存储效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总览

今天碰到了一个spark sql 压缩的问题,所以今天来讲一下spark的压缩
一切参考spark2.4.1版本来讲解

spark 压缩分为3块,rdd压缩 broadcast压缩 和spark sql的压缩

1、rdd 压缩

spark.rdd.compress

Whether to compress serialized RDD partitions (e.g. for StorageLevel.MEMORY_ONLY_SER in Java and Scala or StorageLevel.MEMORY_ONLY in Python). Can save substantial space at the cost of some extra CPU time. Compression will use spark.io.compression.codec.

用来压缩rdd的分区,默认值为false。用来一想也是,rdd的分区缓存在内存中,我们本身就是想使用内存来加速,压缩和相应的解压缩反而浪费了时间。
默认的压缩格式是用的spark.io.compression.codec配置的值

2、broadcast压缩

spark.broadcast.compress

Whether to compress broadcast variables before sending them. Generally a good idea. Compression will use spark.io.compression.codec.

压缩发送的广播变量,默认压缩。压缩格式使用spark.io.compression.codec 配置的值。
想想也合理,压缩广播变量,可以大大的节省带宽和IO,节省效率。

3、spark sql中的压缩

spark sql中的压缩指的比如spark sql建表 spark sql写文件等操作。
这块的配置在官方文档没有,这边顺带说声spark sql 想查看相关配置应该怎么做。
打开spark shell 使用
spark.sql(“SET -v”).write.saveAsTable(“demo”); 把这些spark sql的配置直接存成一张表也方便查看,不然80多个有点多。

spark.sql.parquet.compression.codec

默认值 snappy Acceptable values include: none, uncompressed, snappy, gzip, lzo, brotli, lz4, zstd.

spark.sql.orc.compression.codec snappy

默认值 snappy Acceptable values include: none, uncompressed, snappy, zlib, lzo

上面两个配置说的就是写parquet 和orc 文件默认都是使用snappy格式压缩的。包括可以接受的参数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值