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_r387341483
 
 

 ##########
 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:
   After coming across the config description of 
`ADAPTIVE_EXECUTION_SKEWED_PARTITION_SIZE_THRESHOLD`, I probably get @JkSelf 's 
point. In the description, it is meant to test if a partition is skewed... but 
the way it is actually used here in this class, it is more like the target size 
for splitting the skewed partitions.
   So we need to changes here:
   1. bring this conf back and use it in `isSkewed` instead.
   2. if eventually the entire "skewed" partition is not split at all because 
the size is smaller than the target size, we need to avoid adding the SkewDesc 
for that partition.

----------------------------------------------------------------
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]

Reply via email to