You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@spark.apache.org by ericl <gi...@git.apache.org> on 2016/07/31 05:56:14 UTC

[GitHub] spark pull request #14427: [SPARK-16818] Exchange reuse incorrectly reuses s...

GitHub user ericl opened a pull request:

    https://github.com/apache/spark/pull/14427

    [SPARK-16818] Exchange reuse incorrectly reuses scans over different sets of partitions

    https://github.com/apache/spark/pull/14425 rebased for branch-2.0

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/ericl/spark spark-16818-br-2

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/spark/pull/14427.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #14427
    
----
commit ef60367331fb3097040cfb0849bdc314c8d399ea
Author: Eric Liang <ek...@databricks.com>
Date:   2016-07-31T05:48:09Z

    [SPARK-16818] Exchange reuse incorrectly reuses scans over different sets of partitions
    
    This fixes a bug wherethe file scan operator does not take into account partition pruning in its implementation of `sameResult()`. As a result, executions may be incorrect on self-joins over the same base file relation.
    
    The patch here is minimal, but we should reconsider relying on `metadata` for implementing sameResult() in the future, as string representations may not be uniquely identifying.
    
    cc rxin
    
    Unit tests.
    
    Author: Eric Liang <ek...@databricks.com>
    
    Closes #14425 from ericl/spark-16818.
    
    Conflicts:
    	sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/FileSourceStrategy.scala

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark issue #14427: [SPARK-16818] Exchange reuse incorrectly reuses scans ov...

Posted by ericl <gi...@git.apache.org>.
Github user ericl commented on the issue:

    https://github.com/apache/spark/pull/14427
  
    Done


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark issue #14427: [SPARK-16818] Exchange reuse incorrectly reuses scans ov...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the issue:

    https://github.com/apache/spark/pull/14427
  
    Merged build finished. Test PASSed.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark issue #14427: [SPARK-16818] Exchange reuse incorrectly reuses scans ov...

Posted by SparkQA <gi...@git.apache.org>.
Github user SparkQA commented on the issue:

    https://github.com/apache/spark/pull/14427
  
    **[Test build #63053 has finished](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/63053/consoleFull)** for PR 14427 at commit [`ef60367`](https://github.com/apache/spark/commit/ef60367331fb3097040cfb0849bdc314c8d399ea).
     * This patch passes all tests.
     * This patch merges cleanly.
     * This patch adds no public classes.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark pull request #14427: [SPARK-16818] Exchange reuse incorrectly reuses s...

Posted by ericl <gi...@git.apache.org>.
Github user ericl commented on a diff in the pull request:

    https://github.com/apache/spark/pull/14427#discussion_r72898570
  
    --- Diff: sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/FileSourceStrategySuite.scala ---
    @@ -407,6 +407,39 @@ class FileSourceStrategySuite extends QueryTest with SharedSQLContext with Predi
         }
       }
     
    +  test("[SPARK-16818] partition pruned file scans implement sameResult correctly") {
    +    withTempPath { path =>
    +      val tempDir = path.getCanonicalPath
    +      spark.range(100)
    +        .selectExpr("id", "id as b")
    +        .write
    +        .partitionBy("id")
    +        .parquet(tempDir)
    +      val df = spark.read.parquet(tempDir)
    +      def getPlan(df: DataFrame): SparkPlan = {
    +        df.queryExecution.executedPlan
    +      }
    +      assert(getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id = 2"))))
    +      assert(!getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id = 3"))))
    +    }
    +  }
    +
    +  test("[SPARK-16818] exchange reuse respects differences in partition pruning") {
    +    spark.conf.set("spark.sql.exchange.reuse", true)
    --- End diff --
    
    Oh, I assumed the test already did so since I've seen this pattern
    elsewhere. If it affects more than just the suite, I can submit a follow-up
    fix.
    
    On Sat, Jul 30, 2016, 10:59 PM Reynold Xin <no...@github.com> wrote:
    
    > In
    > sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/FileSourceStrategySuite.scala
    > <https://github.com/apache/spark/pull/14427#discussion_r72898521>:
    >
    > > +      spark.range(100)
    > > +        .selectExpr("id", "id as b")
    > > +        .write
    > > +        .partitionBy("id")
    > > +        .parquet(tempDir)
    > > +      val df = spark.read.parquet(tempDir)
    > > +      def getPlan(df: DataFrame): SparkPlan = {
    > > +        df.queryExecution.executedPlan
    > > +      }
    > > +      assert(getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id = 2"))))
    > > +      assert(!getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id = 3"))))
    > > +    }
    > > +  }
    > > +
    > > +  test("[SPARK-16818] exchange reuse respects differences in partition pruning") {
    > > +    spark.conf.set("spark.sql.exchange.reuse", true)
    >
    > ah actually just realized we could've improved with by using "withSQLConf"
    > -- it makes sure the configs get reset after the test case finishes running.
    >
    > \u2014
    > You are receiving this because you authored the thread.
    > Reply to this email directly, view it on GitHub
    > <https://github.com/apache/spark/pull/14427/files/ef60367331fb3097040cfb0849bdc314c8d399ea#r72898521>,
    > or mute the thread
    > <https://github.com/notifications/unsubscribe-auth/AAA6Sun3Ai6lEtCs9dcjaxlAtO3Y_a2Qks5qbDnQgaJpZM4JY91Z>
    > .
    >



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark issue #14427: [SPARK-16818] Exchange reuse incorrectly reuses scans ov...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on the issue:

    https://github.com/apache/spark/pull/14427
  
    @ericl can you close this?



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark issue #14427: [SPARK-16818] Exchange reuse incorrectly reuses scans ov...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on the issue:

    https://github.com/apache/spark/pull/14427
  
    Merging in branch-2.0.



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark issue #14427: [SPARK-16818] Exchange reuse incorrectly reuses scans ov...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on the issue:

    https://github.com/apache/spark/pull/14427
  
    LGTM pending Jenkins.



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark pull request #14427: [SPARK-16818] Exchange reuse incorrectly reuses s...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/14427#discussion_r72898654
  
    --- Diff: sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/FileSourceStrategySuite.scala ---
    @@ -407,6 +407,39 @@ class FileSourceStrategySuite extends QueryTest with SharedSQLContext with Predi
         }
       }
     
    +  test("[SPARK-16818] partition pruned file scans implement sameResult correctly") {
    +    withTempPath { path =>
    +      val tempDir = path.getCanonicalPath
    +      spark.range(100)
    +        .selectExpr("id", "id as b")
    +        .write
    +        .partitionBy("id")
    +        .parquet(tempDir)
    +      val df = spark.read.parquet(tempDir)
    +      def getPlan(df: DataFrame): SparkPlan = {
    +        df.queryExecution.executedPlan
    +      }
    +      assert(getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id = 2"))))
    +      assert(!getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id = 3"))))
    +    }
    +  }
    +
    +  test("[SPARK-16818] exchange reuse respects differences in partition pruning") {
    +    spark.conf.set("spark.sql.exchange.reuse", true)
    --- End diff --
    
    yea i think those places were not correctly using the confs either.



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark issue #14427: [SPARK-16818] Exchange reuse incorrectly reuses scans ov...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the issue:

    https://github.com/apache/spark/pull/14427
  
    Test PASSed.
    Refer to this link for build results (access rights to CI server needed): 
    https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/63053/
    Test PASSed.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark pull request #14427: [SPARK-16818] Exchange reuse incorrectly reuses s...

Posted by ericl <gi...@git.apache.org>.
Github user ericl closed the pull request at:

    https://github.com/apache/spark/pull/14427


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark pull request #14427: [SPARK-16818] Exchange reuse incorrectly reuses s...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/14427#discussion_r72898521
  
    --- Diff: sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/FileSourceStrategySuite.scala ---
    @@ -407,6 +407,39 @@ class FileSourceStrategySuite extends QueryTest with SharedSQLContext with Predi
         }
       }
     
    +  test("[SPARK-16818] partition pruned file scans implement sameResult correctly") {
    +    withTempPath { path =>
    +      val tempDir = path.getCanonicalPath
    +      spark.range(100)
    +        .selectExpr("id", "id as b")
    +        .write
    +        .partitionBy("id")
    +        .parquet(tempDir)
    +      val df = spark.read.parquet(tempDir)
    +      def getPlan(df: DataFrame): SparkPlan = {
    +        df.queryExecution.executedPlan
    +      }
    +      assert(getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id = 2"))))
    +      assert(!getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id = 3"))))
    +    }
    +  }
    +
    +  test("[SPARK-16818] exchange reuse respects differences in partition pruning") {
    +    spark.conf.set("spark.sql.exchange.reuse", true)
    --- End diff --
    
    ah actually just realized we could've improved with by using "withSQLConf" -- it makes sure the configs get reset after the test case finishes running.



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


[GitHub] spark issue #14427: [SPARK-16818] Exchange reuse incorrectly reuses scans ov...

Posted by SparkQA <gi...@git.apache.org>.
Github user SparkQA commented on the issue:

    https://github.com/apache/spark/pull/14427
  
    **[Test build #63053 has started](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/63053/consoleFull)** for PR 14427 at commit [`ef60367`](https://github.com/apache/spark/commit/ef60367331fb3097040cfb0849bdc314c8d399ea).


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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