spark SQL压缩入门

parquet
默认压缩格式:snappy
可用压缩格式:none, snappy, gzip, lzo

默认是snappy压缩parquet格式,不指定的情况下

保存为gzip压缩的parquet

gzip压缩格式的parquet

def compress(): Unit ={
    val spark: SparkSession = SparkSession.builder().master("local[1]").appName("test").getOrCreate()
    spark.sql("set spark.sql.parquet.compression.codec=gzip")
    val df: DataFrame = spark.read.json("./data/emp.json")
    df.write.save("data/dir10")
  }

如下图
在这里插入图片描述
读取,spark会自动识别压缩格式

 def readcompress(): Unit ={
    val spark: SparkSession = SparkSession.builder().master("local[1]").appName("test").getOrCreate()
    //spark会自动识别压缩格式
    val df: DataFrame = spark.read.load("data/dir10")
    df.show()
  }

保存为lzo 压缩的parquet

def compress(): Unit ={
    val spark: SparkSession = SparkSession.builder().master("local[1]").appName("test").getOrCreate()
    spark.sql("set spark.sql.parquet.compression.codec=lzo")
    val df: DataFrame = spark.read.json("./data/emp.json")
    df.write.save("data/dir10")
  }

报错

 Class com.hadoop.compression.lzo.LzoCodec was not found

参数

spark.sql.parquet.compression.codec

默认值snappy

设置编写Parquet文件时使用的压缩编解码器
可接受的值包括:none,uncompressed,snappy,gzip,lzo,brotli,lz4,zstd。

总结

  • parquet是存储格式,gzip,snappy等等是压缩格式,不要混淆
  • parquet又可分压缩和非压缩

参考

SparkSQL的几种输出格式及压缩方式_lfish001的博客-CSDN博客

cloudera cdh - Class com.hadoop.compression.lzo.LzoCodec not found for Spark on CDH 5? - Stack Overflow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭梨山大哎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值