You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Apache Spark (Jira)" <ji...@apache.org> on 2021/09/13 05:36:00 UTC

[jira] [Assigned] (SPARK-36716) Join estimation support LeftExistence join type

     [ https://issues.apache.org/jira/browse/SPARK-36716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Apache Spark reassigned SPARK-36716:
------------------------------------

    Assignee:     (was: Apache Spark)

> Join estimation support LeftExistence join type
> -----------------------------------------------
>
>                 Key: SPARK-36716
>                 URL: https://issues.apache.org/jira/browse/SPARK-36716
>             Project: Spark
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 3.3.0
>            Reporter: Yuming Wang
>            Priority: Major
>         Attachments: image-2021-09-10-17-17-33-082.png
>
>
> Join estimation support LeftExistence join type. This can benefit tpcds q10.
> Before:
> {noformat}
> TakeOrderedAndProject (51)
> +- * HashAggregate (50)
>    +- Exchange (49)
>       +- * HashAggregate (48)
>          +- * Project (47)
>             +- * SortMergeJoin Inner (46)
>                :- * Sort (40)
>                :  +- Exchange (39)
>                :     +- * Project (38)
>                :        +- * BroadcastHashJoin Inner BuildRight (37)
>                :           :- * Project (31)
>                :           :  +- * Filter (30)
>                :           :     +- SortMergeJoin ExistenceJoin(exists#1) (29)
>                :           :        :- SortMergeJoin ExistenceJoin(exists#2) (21)
>                :           :        :  :- * SortMergeJoin LeftSemi (13)
>                :           :        :  :  :- * Sort (5)
>                :           :        :  :  :  +- Exchange (4)
>                :           :        :  :  :     +- * Filter (3)
>                :           :        :  :  :        +- * ColumnarToRow (2)
>                :           :        :  :  :           +- Scan parquet default.customer (1)
>                :           :        :  :  +- * Sort (12)
>                :           :        :  :     +- Exchange (11)
>                :           :        :  :        +- * Project (10)
>                :           :        :  :           +- * BroadcastHashJoin Inner BuildRight (9)
>                :           :        :  :              :- * ColumnarToRow (7)
>                :           :        :  :              :  +- Scan parquet default.store_sales (6)
>                :           :        :  :              +- ReusedExchange (8)
>                :           :        :  +- * Sort (20)
>                :           :        :     +- Exchange (19)
>                :           :        :        +- * Project (18)
>                :           :        :           +- * BroadcastHashJoin Inner BuildRight (17)
>                :           :        :              :- * ColumnarToRow (15)
>                :           :        :              :  +- Scan parquet default.web_sales (14)
>                :           :        :              +- ReusedExchange (16)
>                :           :        +- * Sort (28)
>                :           :           +- Exchange (27)
>                :           :              +- * Project (26)
>                :           :                 +- * BroadcastHashJoin Inner BuildRight (25)
>                :           :                    :- * ColumnarToRow (23)
>                :           :                    :  +- Scan parquet default.catalog_sales (22)
>                :           :                    +- ReusedExchange (24)
>                :           +- BroadcastExchange (36)
>                :              +- * Project (35)
>                :                 +- * Filter (34)
>                :                    +- * ColumnarToRow (33)
>                :                       +- Scan parquet default.customer_address (32)
>                +- * Sort (45)
>                   +- Exchange (44)
>                      +- * Filter (43)
>                         +- * ColumnarToRow (42)
>                            +- Scan parquet default.customer_demographics (41)
> {noformat}
> After:
> {noformat}
> TakeOrderedAndProject (48)
> +- * HashAggregate (47)
>    +- Exchange (46)
>       +- * HashAggregate (45)
>          +- * Project (44)
>             +- * BroadcastHashJoin Inner BuildLeft (43)
>                :- BroadcastExchange (39)
>                :  +- * Project (38)
>                :     +- * BroadcastHashJoin Inner BuildRight (37)
>                :        :- * Project (31)
>                :        :  +- * Filter (30)
>                :        :     +- SortMergeJoin ExistenceJoin(exists#1) (29)
>                :        :        :- SortMergeJoin ExistenceJoin(exists#2) (21)
>                :        :        :  :- * SortMergeJoin LeftSemi (13)
>                :        :        :  :  :- * Sort (5)
>                :        :        :  :  :  +- Exchange (4)
>                :        :        :  :  :     +- * Filter (3)
>                :        :        :  :  :        +- * ColumnarToRow (2)
>                :        :        :  :  :           +- Scan parquet default.customer (1)
>                :        :        :  :  +- * Sort (12)
>                :        :        :  :     +- Exchange (11)
>                :        :        :  :        +- * Project (10)
>                :        :        :  :           +- * BroadcastHashJoin Inner BuildRight (9)
>                :        :        :  :              :- * ColumnarToRow (7)
>                :        :        :  :              :  +- Scan parquet default.store_sales (6)
>                :        :        :  :              +- ReusedExchange (8)
>                :        :        :  +- * Sort (20)
>                :        :        :     +- Exchange (19)
>                :        :        :        +- * Project (18)
>                :        :        :           +- * BroadcastHashJoin Inner BuildRight (17)
>                :        :        :              :- * ColumnarToRow (15)
>                :        :        :              :  +- Scan parquet default.web_sales (14)
>                :        :        :              +- ReusedExchange (16)
>                :        :        +- * Sort (28)
>                :        :           +- Exchange (27)
>                :        :              +- * Project (26)
>                :        :                 +- * BroadcastHashJoin Inner BuildRight (25)
>                :        :                    :- * ColumnarToRow (23)
>                :        :                    :  +- Scan parquet default.catalog_sales (22)
>                :        :                    +- ReusedExchange (24)
>                :        +- BroadcastExchange (36)
>                :           +- * Project (35)
>                :              +- * Filter (34)
>                :                 +- * ColumnarToRow (33)
>                :                    +- Scan parquet default.customer_address (32)
>                +- * Filter (42)
>                   +- * ColumnarToRow (41)
>                      +- Scan parquet default.customer_demographics (40)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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