一、 压缩文件读取
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")