首页 > 解决方案 > Pyspark S3 写入耗时过长

问题描述

我有一个将处理后的输出转储到 S3 存储桶的 spark 应用程序。我在 pyspark 中的输出数据帧的分区数是 300。我有列“id”(~250 个唯一值),我用它来用 partitionBy 写入文件。所以大约我得到了 75K 个文件,总和为 11GB。

在我的 spark 应用程序中,将此数据写入 S3 的所有阶段都已完成,但正在从 _temp 文件夹移动文件。这进展非常缓慢,按照目前的速度,这将需要一天以上的时间。这里的根本原因是什么以及如何优化它?

标签: apache-sparkamazon-s3

解决方案


通过之前的“id”重新分区写入,这会将每个分区的文件数减少到一个,从而提高写入速度。


推荐阅读