我有一个spark应用程序,它将处理后的输出转储到s3存储桶。pyspark中我的输出Dataframe的分区数是300。我有列“id”(~250个唯一值),我用它来编写带有partitionby的文件。所以我得到了大约75k个文件,总计11gb。
在我的spark应用程序中,将此数据写入s3的所有阶段都已完成,但正在从临时文件夹中移动文件。这是非常缓慢的,按照目前的速度,这将需要一天以上。根本原因是什么?如何优化?
我有一个spark应用程序,它将处理后的输出转储到s3存储桶。pyspark中我的输出Dataframe的分区数是300。我有列“id”(~250个唯一值),我用它来编写带有partitionby的文件。所以我得到了大约75k个文件,总计11gb。
在我的spark应用程序中,将此数据写入s3的所有阶段都已完成,但正在从临时文件夹中移动文件。这是非常缓慢的,按照目前的速度,这将需要一天以上。根本原因是什么?如何优化?
1条答案
按热度按时间woobm2wo1#
按以前的“id”做一个重分区来写,这样会把每个分区的文件数减少到一个,提高写的速度。