it-swarm.com.de

Wird das gzip-Format in Spark unterstützt?

Für ein Big-Data-Projekt plane ich die Verwendung von spark , das einige nette Funktionen wie In-Memory-Berechnungen für wiederholte Workloads enthält. Es kann auf lokalen Dateien oder auf HDFS ausgeführt werden.

In der offiziellen Dokumentation kann ich jedoch keinen Hinweis darauf finden, wie komprimierte Dateien verarbeitet werden sollen. In der Praxis kann es sehr effizient sein, .gz-Dateien anstelle von entpackten Dateien zu verarbeiten.

Gibt es eine Möglichkeit, das Lesen von GZ-Dateien manuell zu implementieren, oder erfolgt das Entpacken bereits automatisch, wenn eine GZ-Datei gelesen wird?

41
ptikobj

Aus der Spark Scala Programmieranleitung Abschnitt über "Hadoop-Datensätze" :

Spark kann verteilte Datasets aus beliebigen Dateien erstellen, die im Hadoop Distributed File System (HDFS) oder anderen von Hadoop unterstützten Speichersystemen (einschließlich Ihres lokalen Dateisystems, Amazon S3, Hypertable, HBase usw.) gespeichert sind. Spark unterstützt Textdateien, SequenceFiles und jedes andere Hadoop InputFormat.

Die Unterstützung für gzip-Eingabedateien sollte genauso funktionieren wie in Hadoop. Beispielsweise sollte sc.textFile("myFile.gz") gzip-komprimierte Dateien automatisch dekomprimieren und lesen (textFile() ist tatsächlich implementiert mit Hadoops TextInputFormat, das gzip- unterstützt komprimierte Dateien).

Wie von @ nick-chammas in den Kommentaren erwähnt:

beachten Sie, dass, wenn Sie sc.textFile() für eine gzippte Datei aufrufen, Spark) eine RDD mit nur einer Partition (ab 0.9.0) ergibt, da es sich um gzippte Dateien handelt nicht teilbar . Wenn Sie die RDD nicht neu partitionieren, sind alle Vorgänge auf dieser RDD auf einen einzelnen Kern beschränkt

71
Josh Rosen