You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@spark.apache.org by wzhfy <gi...@git.apache.org> on 2017/11/30 09:03:58 UTC

[GitHub] spark pull request #19855: [SPARK-22662] [SQL] Failed to prune columns after...

GitHub user wzhfy opened a pull request:

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

    [SPARK-22662] [SQL] Failed to prune columns after rewriting predicate subquery

    ## What changes were proposed in this pull request?
    
    As a simple example:
    ```
    spark-sql> create table base (a int, b int) using parquet;
    Time taken: 0.066 seconds
    spark-sql> create table relInSubq ( x int, y int, z int) using parquet;
    Time taken: 0.042 seconds
    spark-sql> explain select a from base where a in (select x from relInSubq);
    == Physical Plan ==
    *Project [a#83]
    +- *BroadcastHashJoin [a#83], [x#85], LeftSemi, BuildRight
       :- *FileScan parquet default.base[a#83,b#84] Batched: true, Format: Parquet, Location: InMemoryFileIndex[hdfs://100.0.0.4:9000/wzh/base], PartitionFilters: [], PushedFilters: [], ReadSchema: struct<a:int,b:int>
       +- BroadcastExchange HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)))
          +- *Project [x#85]
             +- *FileScan parquet default.relinsubq[x#85] Batched: true, Format: Parquet, Location: InMemoryFileIndex[hdfs://100.0.0.4:9000/wzh/relinsubq], PartitionFilters: [], PushedFilters: [], ReadSchema: struct<x:int>
    ```
    We only need column `a` in table `base`, but all columns (`a`, `b`) are fetched.
    
    The reason is that, in "Operator Optimizations" batch, `ColumnPruning` first produces a `Project` on table `base`, but then it's removed by `removeProjectBeforeFilter`. Because at that time, the predicate subquery is in filter form. Then, in "Rewrite Subquery" batch, `RewritePredicateSubquery` converts the subquery into a LeftSemi join, but this batch doesn't have the `ColumnPruning` rule. This results in reading all columns for the `base` table.
    
    ## How was this patch tested?
    Added a new test case.


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

    $ git pull https://github.com/wzhfy/spark column_pruning_subquery

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

    https://github.com/apache/spark/pull/19855.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 #19855
    
----
commit 1f9fccff696137ae2dd26a50fcf81b7cd267338d
Author: Zhenhua Wang <wa...@huawei.com>
Date:   2017-11-30T08:46:21Z

    Column pruning after rewriting predicate subquery

----


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    **[Test build #84407 has started](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/84407/testReport)** for PR 19855 at commit [`f9e9d10`](https://github.com/apache/spark/commit/f9e9d10d4b581379c2af966a35362b77f35a7b6f).


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    A long story to explain what happened since the initial support of correlated queries.
    
    I am fine to add this rule in this batch now, although it just resolves the issue partially. 


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

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


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    @gengliangwang @cloud-fan Previously this rule is in the batch `Operator Optimizations`, but after [SPARK-14781](https://github.com/apache/spark/pull/12820), it is moved into a separate batch [by this code change](https://github.com/apache/spark/pull/12820#discussion_r61688622).
    I think the reason of this change is in the PR description:
    >This PR also fix a bug in predicate subquery push down through join (they should not).
    
    I reverted the change in Optimizer and ran all the test suites in that PR, hoping to find some clue. But I found no error in tests. So it seems something has been changed since that PR.



---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    I think for 
    ```
    This PR also fix a bug in predicate subquery push down through join (they should not).
    ```
    he meant here: https://github.com/apache/spark/pull/12820/files#diff-a636a87d8843eeccca90140be91d4fafR1213
    
    But I don't know why @davies moved the rule to the end, either.


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

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


---

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


[GitHub] spark pull request #19855: [SPARK-22662] [SQL] Failed to prune columns after...

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

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


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

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


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    Thanks! Merged to master.


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

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


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    cc @cloud-fan @gatorsmile @hvanhovell 


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

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


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    retest this please


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    cc @jiangxb1987 who has more context.


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    @maropu Good to know, thanks!


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    **[Test build #84506 has started](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/84506/testReport)** for PR 19855 at commit [`f9e9d10`](https://github.com/apache/spark/commit/f9e9d10d4b581379c2af966a35362b77f35a7b6f).


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

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


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

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


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    **[Test build #84333 has finished](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/84333/testReport)** for PR 19855 at commit [`1f9fccf`](https://github.com/apache/spark/commit/1f9fccff696137ae2dd26a50fcf81b7cd267338d).
     * This patch passes all tests.
     * This patch merges cleanly.
     * This patch adds no public classes.


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    **[Test build #84333 has started](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/84333/testReport)** for PR 19855 at commit [`1f9fccf`](https://github.com/apache/spark/commit/1f9fccff696137ae2dd26a50fcf81b7cd267338d).


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    just FYI; this pr is too cool! cuz this fix improved many tpcds queries (e.g., `q94` got more than 10x faster than before!).https://docs.google.com/spreadsheets/d/1V8xoKR9ElU-rOXMH84gb5BbLEw0XAPTJY8c8aZeIqus/edit?usp=sharing


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

    https://github.com/apache/spark/pull/19855
  
    Hi @wzhfy , for resolving the issue, how about changing the order of batches? 
    E.g. move batch `RewriteSubquery` before `Operator Optimizations`


---

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


[GitHub] spark issue #19855: [SPARK-22662] [SQL] Failed to prune columns after rewrit...

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

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


---

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