2017-02-01 44 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 –