2017-02-01 2 views
0

Ich benutze Funken und ich habe verschiedene Arten von komprimierten Dateien auf hdfs (zip, gzip, 7zip, tar, bz2, tar.gz etc). Könnt mir jemand bitte den besten Weg zur Dekompression mitteilen? Für etwas Kompression könnte ich CompressionCodec verwenden. Aber es unterstützt nicht alle Kompressionsformat. Für Zip-Datei habe ich einige Suche und fand, dass ZipFileInputFormat verwendet werden könnte. aber ich konnte kein Glas dafür finden.dekomprimieren von Dateien von hdfs in spark

+0

Sie können Ihr eigenes Eingabeformat und Plattenleser in Java und importieren in scala schreiben. https://gist.github.com/jteso/1868049 –

+0

[zip, 7zip, tar sind * Archive *, nicht unbedingt "komprimiert"] (http://superuser.com/questions/173756/which-is-more- efficient-tar-oder-zip-compression-what-is-the-difference-between wie die von BZip2 und Gzip (gz und gzip sind die gleichen ... tar.gz ist ein tar-Archiv, das komprimiert ist). Wie auch immer, BZip2 ist die beste Option in HDFS http://comphadoop.weebly.com/index.html –

Antwort

0

Für ein komprimiertes Format (ich weiß, dass es für tar.gz und zip gilt, nicht für die anderen getestet), können Sie die Dataframe-API direkt verwenden und es wird für Sie die Komprimierung übernehmen:

val df = spark.read.json("compressed-json.tar.gz")

+0

Hi @Ben oben funktioniert für TAR-Datei, aber nicht für ZIP-Dateien. Ich benutze Spark 1.6 mit Scala 2.10.2 –

Verwandte Themen