【发布时间】:2019-01-22 18:58:35
【问题描述】:
我有一个数据框,当保存为 Parquet 格式时大约需要 11GB。 读取数据帧并写入 json 时,需要 5 分钟。 当我添加 partitionBy("day") 需要几个小时才能完成。 我知道分配到分区是昂贵的操作。 有没有办法让它更快?对文件进行排序会变得更好吗?
例子:
跑 5 分钟
df=spark.read.parquet(source_path).
df.write.json(output_path)
跑几个小时
spark.read.parquet(source_path).createOrReplaceTempView("source_table")
sql="""
select cast(trunc(date,'yyyymmdd') as int) as day, a.*
from source_table a"""
spark.sql(sql).write.partitionBy("day").json(output_path)
【问题讨论】:
标签: scala apache-spark apache-spark-sql spark-dataframe