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

问题描述 投票:1回答:1

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

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

apache-spark apache-spark-sql spark-dataframe gzip apache-spark-dataset
1个回答
4
投票

读取压缩的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需要使用单个核心来读取整个文件,这将减慢速度。读取完成后,可以对数据进行混洗以增加并行性。

© www.soinside.com 2019 - 2024. All rights reserved.