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

How to read ".gz" compressed file using spark DF or DS?

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

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

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