2016-10-26 3 views
3

Standardmäßig verwenden neuere Spark-Versionen die Komprimierung beim Speichern von Textdateien. Zum Beispiel:Spark: saveAsTextFile ohne Komprimierung

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

werden die Dateien in .deflate Format erstellen. Es ist ziemlich einfach, den Kompressionsalgorithmus zu ändern, z. für .gzip:

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

Aber gibt es eine Möglichkeit, um speichern RDD als reine Textdateien, das heißt ohne Kompression?

+0

Versuchen Sie, 'mapred.output.compress' auf' false' zu ​​setzen – mrsrinivas

Antwort

3

Ich kann die Textdatei in HDFS ohne Komprimierung mit diesem Code sehen.

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") 

Sie können alle Hadoop bezogenen Eigenschaften zu hadoopConfiguration auf sc gesetzt.

Bestätigt diesen Code in Spark 1.5.2 (Scala 2.11).

+1

Getestet auf lokalem Dateisystem anstelle von HDFS und Scala 2.10 statt 2.11, und es funktioniert wie ein Charme! Vielen Dank! – ffriend

Verwandte Themen