Spark读写压缩文件

一、 压缩文件读取

spark 自动根据文件后缀名判断压缩格式,不用特别指定

二、写文件时压缩

spark会加载Hadoop的默认的配置,如果hadoop中设置了压缩,spark没指定压缩则会用hadoop的配置方式压缩;

spark中指定方式如下:

方法1:写文件时指定压缩格式


val sc = new SparkContext(new SparkConf())

val textFile = sc.textFile("")

textFile.saveAsTextFile("/tmp/logs", classOf[SnappyCodec]  )

//其他压缩方式:

classOf[Lz4Codec]

classOf[GzipCodec]

方法2:配置方式,全局可用


sc.hadoopConfiguration.set(FileOutputFormat.COMPRESS , "true")

sc.hadoopConfiguration.set(FileOutputFormat.COMPRESS_CODEC,  "org.apache.hadoop.io.compress.SnappyCodec")

rdd.saveAsTextFile("/tmp/logs/test/aaCompress")

//其他压缩方式:

lz4: org.apache.hadoop.io.compress.Lz4Codec

gzip: org.apache.hadoop.io.compress.GzipCodec

如果数据量很少不需要压缩只需设置不压缩: sc.hadoopConfiguration.set(FileOutputFormat.COMPRESS , “false”)

    原文作者:skyjunjun
    原文地址: https://www.jianshu.com/p/d465e6faedbc
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞