在 Spark 中指定 Dataframe 连接的任务数

Hot to specify number of tasks for a Dataframe join in Spark

我从 SQL 数据库中读取了 2 个数据帧,它们都有 10 个任务。

然后,当我用 df1.join(df2) 加入他们时,它为加入操作创建了 200 个任务,我不明白为什么是 200 个任务,我该如何更改它?

例如,在使用 rdds 时,join 等方法采用 [numTasks] 参数,但我在这里找不到等效项。有什么原因吗?

您必须将 spark.sql.shuffle.partitions 设置为另一个值,默认值为 200,请参阅 https://spark.apache.org/docs/latest/sql-programming-guide.html#other-configuration-options

请注意,在进行广播连接时没有任何效果。如果更改此值,这也会影响聚合时的任务数。