我有一个.gz格式的压缩文件,是否可以使用spark DF / DS直接读取文件?
详细信息:文件是带制表符分隔符的csv。
答案 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需要使用单个核心读取整个文件,这将减慢速度。读取完成后,可以对数据进行混洗以增加并行性。