首页 > 解决方案 > 如何减少使用 Pyspark 将大型 CSV (12 Go) 写入 GCS 存储桶的时间?(>6小时)

问题描述

我有一个 Dataproc 集群来转换存储在 GCS 中的许多 CSV 文件,但是当我将 CSV 写入 GCS 存储桶时,这需要太多时间,一个文件需要 7 小时(12 小时)。

这是我用来读写 CSV 的代码:

df = spark.read.options(delimiter='¤',header="true").csv('gs://'+bucket_name+'/'+file_name)

df.write.format('csv').option("header","True").option('sep','¤').save('gs://'+bucket_name+'/'+target_obj_name+'_tmp'+'/'+filename)

我怎样才能优化这个操作?

标签: pythoncsvapache-sparkpyspark

解决方案


读取将是单个 Spark 任务,但转换和写入将由 Spark 并行化,因此增加集群的大小将增加并行度并相应地减少执行时间。


推荐阅读