maryannxue commented on a change in pull request #27669: [SPARK-30918][SQL]
improve the splitting of skewed partitions
URL: https://github.com/apache/spark/pull/27669#discussion_r383654941
##########
File path:
sql/core/src/main/scala/org/apache/spark/sql/execution/adaptive/OptimizeSkewedJoin.scala
##########
@@ -61,6 +85,19 @@ case class OptimizeSkewedJoin(conf: SQLConf) extends
Rule[SparkPlan] {
}
}
+ /**
+ * The goal of skew join optimization is to make the data distribution more
even. The target size
+ * to split skewed partitions is the average size of non-skewed partition,
or the
+ * target post-shuffle partition size if avg size is smaller than it.
+ */
+ private def targetSize(stats: MapOutputStatistics, medianSize: Long): Long =
{
+ val targetPostShuffleSize =
conf.getConf(SQLConf.SHUFFLE_TARGET_POSTSHUFFLE_INPUT_SIZE)
Review comment:
The problem with the old approach was the new skew partition size after
split can be much smaller than that of the non-skew partition size. Being small
itself is not a problem, but having more splits may come with a price, esp.
with both side skews, and meanwhile if non-skew partitions take longer to
finish, it wouldn't be worth that price.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]