Spark:saveAsTextFile没有压缩

时间:2016-10-26 13:41:37

标签: scala apache-spark compression

默认情况下,较新版本的Spark在保存文本文件时使用压缩。例如:

val txt = sc.parallelize(List("Hello", "world", "!"))
txt.saveAsTextFile("/path/to/output")

将以.deflate格式创建文件。它很容易改变压缩算法,例如, .gzip

import org.apache.hadoop.io.compress._
val txt = sc.parallelize(List("Hello", "world", "!"))
txt.saveAsTextFile("/path/to/output", classOf[GzipCodec])

但有没有办法将保存RDD 作为纯文本文件,即没有任何压缩

1 个答案:

答案 0 :(得分:8)

我可以使用此代码在HDFS中看到文本文件,无需任何压缩

val conf = new SparkConf().setMaster("local").setAppName("App name")
val sc = new SparkContext(conf);
sc.hadoopConfiguration.set("mapred.output.compress", "false")
val txt = sc.parallelize(List("Hello", "world", "!"))
txt.saveAsTextFile("hdfs/path/to/save/file")

您可以在hadoopConfiguration上将所有与Hadoop相关的属性设置为sc

在Spark 1.5.2(scala 2.11)中验证了此代码。