2017-02-01 72 views
0

我正在使用火花,並且在hdfs(zip,gzip,7zip,tar,bz2,tar.gz等)上有不同類型的壓縮文件。任何人都可以讓我知道解壓縮的最佳途徑。對於某些壓縮,我可以使用CompressionCodec。但它不支持所有壓縮格式。對於zip文件,我做了一些搜索,發現可以使用ZipFileInputFormat。但我找不到任何罐子。從火花的hdfs解壓縮文件

+0

您可以在java中編寫自己的輸入格式和記錄讀取器,並導入到scala中。 https://gist.github.com/jteso/1868049 –

+0

[zip,7zip,tar是*檔案*,不一定是「壓縮」](http://superuser.com/questions/173756/which-is-more-與BZip2和Gzip(gz和gzip是相同的... tar.gz是壓縮的tar歸檔文件)之間的高效tar或zip壓縮是什麼)。無論如何,BZip2是HDFS中的最佳選擇http://comphadoop.weebly.com/index.html –

回答

0

對於某些壓縮格式(我知道它對於tar.gz和zip是真的,還沒有爲其他測試做過測試),您可以直接使用dataframe API,它會爲您處理壓縮:

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

+0

Hi @Ben以上適用於tar文件,但不適用於zip文件。我使用Spark 1.6和Scala 2.10.2 –