在我们开展工作的一些Spark工作中,我已经开始设置:
--conf spark.sql.shuffle.partitions=400
在启动脚本中。在有时遇到OOM错误后,它使工作变得非常好和稳定。
但设置此值与手动调用
之间是否存在差异df.repartition(400)
代码中的某个地方?如果我的目标是交换随机播放速度以使数据均匀分布,那么在我的情况下,我更喜欢后者。如果我们可以依靠设置--conf来处理这个问题,那就太棒了。
答案 0 :(得分:0)
有不同的--conf spark.sql.shuffle.partitions=400
配置说明在应用程序中发生shuffle后应该创建多少个文件,这可能是由于join,groupBy,distinct。其中df.repartition(400)
表示您强制数据帧重新排列其数据并创建400个分区。