在Spark 2.2中,调用.repartition(#)和设置默认分区值之间有区别吗?

时间:2018-06-17 04:43:46

标签: apache-spark apache-spark-sql

在我们开展工作的一些Spark工作中,我已经开始设置:

--conf spark.sql.shuffle.partitions=400

在启动脚本中。在有时遇到OOM错误后,它使工作变得非常好和稳定。

但设置此值与手动调用

之间是否存在差异
df.repartition(400)

代码中的某个地方?如果我的目标是交换随机播放速度以使数据均匀分布,那么在我的情况下,我更喜欢后者。如果我们可以依靠设置--conf来处理这个问题,那就太棒了。

1 个答案:

答案 0 :(得分:0)

有不同的--conf spark.sql.shuffle.partitions=400配置说明在应用程序中发生shuffle后应该创建多少个文件,这可能是由于join,groupBy,distinct。其中df.repartition(400)表示您强制数据帧重新排列其数据并创建400个分区。