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
又可分压缩和非压缩