Java Spark支持gzip格式吗?

Java Spark支持gzip格式吗?,java,scala,mapreduce,gzip,apache-spark,Java,Scala,Mapreduce,Gzip,Apache Spark,对于一个大数据项目,我计划使用它,它有一些很好的特性,比如针对重复工作负载的内存计算。它可以在本地文件或HDFS上运行 然而,在官方文档中,我找不到任何关于如何处理gzip文件的提示。实际上,处理.gz文件而不是解压缩文件是非常有效的 有没有一种方法可以手动实现读取gzip文件,或者在读取.gz文件时自动解压缩?来自Spark Scala编程指南: Spark可以从Hadoop分布式文件系统(HDFS)或Hadoop支持的其他存储系统(包括本地文件系统、Amazon S3、Hypertable、

对于一个大数据项目,我计划使用它,它有一些很好的特性,比如针对重复工作负载的内存计算。它可以在本地文件或HDFS上运行

然而,在官方文档中,我找不到任何关于如何处理gzip文件的提示。实际上,处理.gz文件而不是解压缩文件是非常有效的


有没有一种方法可以手动实现读取gzip文件,或者在读取.gz文件时自动解压缩?

来自Spark Scala编程指南:

Spark可以从Hadoop分布式文件系统(HDFS)或Hadoop支持的其他存储系统(包括本地文件系统、Amazon S3、Hypertable、HBase等)中存储的任何文件创建分布式数据集。Spark支持文本文件、SequenceFile和任何其他Hadoop InputFormat

对gzip输入文件的支持应该与Hadoop中的工作原理相同。例如,
sc.textFile(“myFile.gz”)
应该自动解压缩并读取gzip压缩文件(
textFile()
实际上使用的是Hadoop的
TextInputFormat
,它支持gzip压缩文件)

正如@nick chammas在评论中提到的:

请注意,如果对gzip文件调用
sc.textFile()
,Spark将给出 您需要一个只有1个分区的RDD(从0.9.0开始)。这是因为 gzip文件是。如果您不重新分区RDD 不知何故,RDD上的任何操作都将限于单个核心


当我尝试
logs=sc.textFile(“logs/*.bz2”)
时,我在随后的
logs.count()
中得到一个错误。你知道为什么吗?@zbinsd最后你明白了吗?加载tar.gz文件时出现以下错误:JsonParseException:非法字符((CTRL-CHAR,代码0)):两个文件之间只允许有规则的空白(\r\n\t)tokens@Leon,从这个页面:,它说:Spark的所有基于文件的输入方法,包括textFile,支持在目录上运行,压缩文件,还有通配符。例如,您可以使用textFile(“/my/directory”)、textFile(“/my/directory/*.txt”)和textFile(“/my/directory/*.gz”),我希望这会有所帮助。我正在尝试处理Google Takeout中的某些内容,但我希望从存档中获取一个文件(.mbox)。如何指定我想要这一个文件?似乎spark会检查压缩文件的
.gz
文件扩展名。我有一个压缩文件,它可以通过
sc.textFile()
很好地读取,但是当我处理扩展名时返回字节字符串,因此,
somefile.gz.bkp