何使用spark DF或DS读取“.gz”压缩文件?

时间:2018-03-26 11:43:26

标签: apache-spark apache-spark-sql spark-dataframe gzip apache-spark-dataset

我有一个.gz格式的压缩文件,是否可以使用spark DF / DS直接读取文件?

详细信息:文件是带制表符分隔符的csv。

1 个答案:

答案 0 :(得分:3)

读取压缩的csv与读取未压缩的csv文件的方式相同。对于Spark版本2.0+,可以使用Scala完成以下操作(请注意制表符分隔符的额外选项):

val df = spark.read.option("sep", "\t").csv("file.csv.gz")

PySpark:

df = spark.read.csv("file.csv.gz", sep='\t')

要考虑的唯一额外考虑因素是gz文件不可拆分,因此Spark需要使用单个核心读取整个文件,这将减慢速度。读取完成后,可以对数据进行混洗以增加并行性。