You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@spark.apache.org by viirya <gi...@git.apache.org> on 2018/06/07 03:41:32 UTC

[GitHub] spark pull request #21498: [SPARK-24410][SQL][Core] Optimization for Union o...

Github user viirya commented on a diff in the pull request:

    https://github.com/apache/spark/pull/21498#discussion_r193618338
  
    --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala ---
    @@ -1099,6 +1099,17 @@ object SQLConf {
           .intConf
           .createWithDefault(SHUFFLE_SPILL_NUM_ELEMENTS_FORCE_SPILL_THRESHOLD.defaultValue.get)
     
    +  val UNION_IN_SAME_PARTITION =
    +    buildConf("spark.sql.unionInSamePartition")
    +      .internal()
    +      .doc("When true, Union operator will union children results in the same corresponding " +
    +        "partitions if they have same partitioning. This eliminates unnecessary shuffle in later " +
    +        "operators like aggregation. Note that because non-deterministic functions such as " +
    +        "monotonically_increasing_id are depended on partition id. By doing this, the values of " +
    --- End diff --
    
    I'm a bit not convinced by the reason and behavior of keeping the value of non-deterministic functions after an union. Like in the following queries:
    
    ```scala
    val df1 = spark.range(10).select(monotonically_increasing_id())
    val df2 = spark.range(10).select(monotonically_increasing_id())
    val union = df1.union(df2)
    ```
    
    Now we keep the values of `monotonically_increasing_id` returned by `df1`, `df2` and `union` are the same. However, as non-deterministic functions, the values changing by data layout/sequence sounds still reasonable.
    
    Anyway that is current behavior and this config need users to enable this feature explicitly.



---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org