yaooqinn commented on pull request #31012:
URL: https://github.com/apache/spark/pull/31012#issuecomment-764204457


   ```
   == Optimized Logical Plan ==
   GlobalLimit 100, Statistics(sizeInBytes=14.8 KiB, rowCount=100)
   +- LocalLimit 100, Statistics(sizeInBytes=254.6 MiB, rowCount=1.92E+6)
      +- Sort [cd_gender#305 ASC NULLS FIRST, cd_marital_status#306 ASC NULLS 
FIRST, cd_education_status#307 ASC NULLS FIRST, cd_purchase_estimate#50 ASC 
NULLS FIRST, cd_credit_rating#308 ASC NULLS FIRST, cd_dep_count#52 ASC NULLS 
FIRST, cd_dep_employed_count#53 ASC NULLS FIRST, cd_dep_college_count#54 ASC 
NULLS FIRST], true, Statistics(sizeInBytes=254.6 MiB, rowCount=1.92E+6)
         +- Aggregate [cd_gender#305, cd_marital_status#306, 
cd_education_status#307, cd_purchase_estimate#50, cd_credit_rating#308, 
cd_dep_count#52, cd_dep_employed_count#53, cd_dep_college_count#54], 
[cd_gender#305, cd_marital_status#306, cd_education_status#307, count(1) AS 
cnt1#0L, cd_purchase_estimate#50, count(1) AS cnt2#1L, cd_credit_rating#308, 
count(1) AS cnt3#2L, cd_dep_count#52, count(1) AS cnt4#3L, 
cd_dep_employed_count#53, count(1) AS cnt5#4L, cd_dep_college_count#54, 
count(1) AS cnt6#5L], Statistics(sizeInBytes=254.6 MiB, rowCount=1.92E+6)
            +- Project [cd_gender#305, cd_marital_status#306, 
cd_education_status#307, cd_purchase_estimate#50, cd_credit_rating#308, 
cd_dep_count#52, cd_dep_employed_count#53, cd_dep_college_count#54], 
Statistics(sizeInBytes=184.7 MiB, rowCount=2.13E+6)
               +- Join Inner, (cd_demo_sk#46 = c_current_cdemo_sk#17), 
Statistics(sizeInBytes=200.9 MiB, rowCount=2.13E+6)
                  :- Project [c_current_cdemo_sk#17], 
Statistics(sizeInBytes=23.4 MiB, rowCount=2.05E+6)
                  :  +- Join Inner, (c_current_addr_sk#19 = ca_address_sk#33), 
Statistics(sizeInBytes=39.0 MiB, rowCount=2.05E+6)
                  :     :- Project [c_current_cdemo_sk#17, 
c_current_addr_sk#19], Statistics(sizeInBytes=29.5 MiB, rowCount=1.93E+6)
                  :     :  +- Join LeftSemi, (customer_sk#8 = 
c_customer_sk#15), Statistics(sizeInBytes=36.8 MiB, rowCount=1.93E+6)
                  :     :     :- Join LeftSemi, (customer_sk#6 = 
c_customer_sk#15), Statistics(sizeInBytes=36.8 MiB, rowCount=1.93E+6)
                  :     :     :  :- Project [c_customer_sk#15, 
c_current_cdemo_sk#17, c_current_addr_sk#19], Statistics(sizeInBytes=36.8 MiB, 
rowCount=1.93E+6)
                  :     :     :  :  +- Filter ((isnotnull(c_customer_sk#15) AND 
isnotnull(c_current_addr_sk#19)) AND isnotnull(c_current_cdemo_sk#17)), 
Statistics(sizeInBytes=438.1 MiB, rowCount=1.93E+6)
                  :     :     :  :     +- 
Relation[c_customer_sk#15,c_customer_id#16,c_current_cdemo_sk#17,c_current_hdemo_sk#18,c_current_addr_sk#19,c_first_shipto_date_sk#20,c_first_sales_date_sk#21,c_salutation#22,c_first_name#23,c_last_name#24,c_preferred_cust_flag#25,c_birth_day#26,c_birth_month#27,c_birth_year#28,c_birth_country#29,c_login#30,c_email_address#31,c_last_review_date#32]
 parquet, Statistics(sizeInBytes=453.9 MiB, rowCount=2.00E+6)
                  :     :     :  +- Union false, false, 
Statistics(sizeInBytes=137.8 MiB, rowCount=1.20E+7)
                  :     :     :     :- Project [ws_bill_customer_sk#59 AS 
customer_sk#6], Statistics(sizeInBytes=45.8 MiB, rowCount=4.00E+6)
                  :     :     :     :  +- Join Inner, (ws_sold_date_sk#55 = 
d_date_sk#89), Statistics(sizeInBytes=76.3 MiB, rowCount=4.00E+6)
                  :     :     :     :     :- Project [ws_sold_date_sk#55, 
ws_bill_customer_sk#59], Statistics(sizeInBytes=1098.1 MiB, rowCount=7.20E+7)
                  :     :     :     :     :  +- Filter 
(isnotnull(ws_sold_date_sk#55) AND isnotnull(ws_bill_customer_sk#59)), 
Statistics(sizeInBytes=13.7 GiB, rowCount=7.20E+7)
                  :     :     :     :     :     +- 
Relation[ws_sold_date_sk#55,ws_sold_time_sk#56,ws_ship_date_sk#57,ws_item_sk#58,ws_bill_customer_sk#59,ws_bill_cdemo_sk#60,ws_bill_hdemo_sk#61,ws_bill_addr_sk#62,ws_ship_customer_sk#63,ws_ship_cdemo_sk#64,ws_ship_hdemo_sk#65,ws_ship_addr_sk#66,ws_web_page_sk#67,ws_web_site_sk#68,ws_ship_mode_sk#69,ws_warehouse_sk#70,ws_promo_sk#71,ws_order_number#72,ws_quantity#73,ws_wholesale_cost#74,ws_list_price#75,ws_sales_price#76,ws_ext_discount_amt#77,ws_ext_sales_price#78,...
 10 more fields] parquet, Statistics(sizeInBytes=13.7 GiB, rowCount=7.20E+7)
                  :     :     :     :     +- Project [d_date_sk#89], 
Statistics(sizeInBytes=1188.0 B, rowCount=99)
                  :     :     :     :        +- Filter 
(((((isnotnull(d_year#95) AND isnotnull(d_moy#97)) AND (d_year#95 = 2002)) AND 
(d_moy#97 >= 4)) AND (d_moy#97 <= 7)) AND isnotnull(d_date_sk#89)), 
Statistics(sizeInBytes=24.4 KiB, rowCount=99)
                  :     :     :     :           +- 
Relation[d_date_sk#89,d_date_id#90,d_date#91,d_month_seq#92,d_week_seq#93,d_quarter_seq#94,d_year#95,d_dow#96,d_moy#97,d_dom#98,d_qoy#99,d_fy_year#100,d_fy_quarter_seq#101,d_fy_week_seq#102,d_day_name#103,d_quarter_name#104,d_holiday#105,d_weekend#106,d_following_holiday#107,d_first_dom#108,d_last_dom#109,d_same_day_ly#110,d_same_day_lq#111,d_current_day#112,...
 4 more fields] parquet, Statistics(sizeInBytes=17.6 MiB, rowCount=7.30E+4)
                  :     :     :     +- Project [cs_ship_customer_sk#124 AS 
customer_sk#7], Statistics(sizeInBytes=92.0 MiB, rowCount=8.04E+6)
                  :     :     :        +- Join Inner, (cs_sold_date_sk#117 = 
d_date_sk#89), Statistics(sizeInBytes=153.4 MiB, rowCount=8.04E+6)
                  :     :     :           :- Project [cs_sold_date_sk#117, 
cs_ship_customer_sk#124], Statistics(sizeInBytes=2.1 GiB, rowCount=1.43E+8)
                  :     :     :           :  +- Filter 
(isnotnull(cs_sold_date_sk#117) AND isnotnull(cs_ship_customer_sk#124)), 
Statistics(sizeInBytes=27.1 GiB, rowCount=1.43E+8)
                  :     :     :           :     +- 
Relation[cs_sold_date_sk#117,cs_sold_time_sk#118,cs_ship_date_sk#119,cs_bill_customer_sk#120,cs_bill_cdemo_sk#121,cs_bill_hdemo_sk#122,cs_bill_addr_sk#123,cs_ship_customer_sk#124,cs_ship_cdemo_sk#125,cs_ship_hdemo_sk#126,cs_ship_addr_sk#127,cs_call_center_sk#128,cs_catalog_page_sk#129,cs_ship_mode_sk#130,cs_warehouse_sk#131,cs_item_sk#132,cs_promo_sk#133,cs_order_number#134,cs_quantity#135,cs_wholesale_cost#136,cs_list_price#137,cs_sales_price#138,cs_ext_discount_amt#139,cs_ext_sales_price#140,...
 10 more fields] parquet, Statistics(sizeInBytes=27.4 GiB, rowCount=1.44E+8)
                  :     :     :           +- Project [d_date_sk#89], 
Statistics(sizeInBytes=1188.0 B, rowCount=99)
                  :     :     :              +- Filter 
(((((isnotnull(d_year#95) AND isnotnull(d_moy#97)) AND (d_year#95 = 2002)) AND 
(d_moy#97 >= 4)) AND (d_moy#97 <= 7)) AND isnotnull(d_date_sk#89)), 
Statistics(sizeInBytes=24.4 KiB, rowCount=99)
                  :     :     :                 +- 
Relation[d_date_sk#89,d_date_id#90,d_date#91,d_month_seq#92,d_week_seq#93,d_quarter_seq#94,d_year#95,d_dow#96,d_moy#97,d_dom#98,d_qoy#99,d_fy_year#100,d_fy_quarter_seq#101,d_fy_week_seq#102,d_day_name#103,d_quarter_name#104,d_holiday#105,d_weekend#106,d_following_holiday#107,d_first_dom#108,d_last_dom#109,d_same_day_ly#110,d_same_day_lq#111,d_current_day#112,...
 4 more fields] parquet, Statistics(sizeInBytes=17.6 MiB, rowCount=7.30E+4)
                  :     :     +- Project [ss_customer_sk#154 AS customer_sk#8], 
Statistics(sizeInBytes=183.1 MiB, rowCount=1.60E+7)
                  :     :        +- Join Inner, (ss_sold_date_sk#151 = 
d_date_sk#89), Statistics(sizeInBytes=305.2 MiB, rowCount=1.60E+7)
                  :     :           :- Project [ss_sold_date_sk#151, 
ss_customer_sk#154], Statistics(sizeInBytes=3.9 GiB, rowCount=2.63E+8)
                  :     :           :  +- Filter 
(isnotnull(ss_sold_date_sk#151) AND isnotnull(ss_customer_sk#154)), 
Statistics(sizeInBytes=36.2 GiB, rowCount=2.63E+8)
                  :     :           :     +- 
Relation[ss_sold_date_sk#151,ss_sold_time_sk#152,ss_item_sk#153,ss_customer_sk#154,ss_cdemo_sk#155,ss_hdemo_sk#156,ss_addr_sk#157,ss_store_sk#158,ss_promo_sk#159,ss_ticket_number#160,ss_quantity#161,ss_wholesale_cost#162,ss_list_price#163,ss_sales_price#164,ss_ext_discount_amt#165,ss_ext_sales_price#166,ss_ext_wholesale_cost#167,ss_ext_list_price#168,ss_ext_tax#169,ss_coupon_amt#170,ss_net_paid#171,ss_net_paid_inc_tax#172,ss_net_profit#173]
 parquet, Statistics(sizeInBytes=39.7 GiB, rowCount=2.88E+8)
                  :     :           +- Project [d_date_sk#89], 
Statistics(sizeInBytes=1188.0 B, rowCount=99)
                  :     :              +- Filter (((((isnotnull(d_year#95) AND 
isnotnull(d_moy#97)) AND (d_year#95 = 2002)) AND (d_moy#97 >= 4)) AND (d_moy#97 
<= 7)) AND isnotnull(d_date_sk#89)), Statistics(sizeInBytes=24.4 KiB, 
rowCount=99)
                  :     :                 +- 
Relation[d_date_sk#89,d_date_id#90,d_date#91,d_month_seq#92,d_week_seq#93,d_quarter_seq#94,d_year#95,d_dow#96,d_moy#97,d_dom#98,d_qoy#99,d_fy_year#100,d_fy_quarter_seq#101,d_fy_week_seq#102,d_day_name#103,d_quarter_name#104,d_holiday#105,d_weekend#106,d_following_holiday#107,d_first_dom#108,d_last_dom#109,d_same_day_ly#110,d_same_day_lq#111,d_current_day#112,...
 4 more fields] parquet, Statistics(sizeInBytes=17.6 MiB, rowCount=7.30E+4)
                  :     +- Project [ca_address_sk#33], 
Statistics(sizeInBytes=11.4 MiB, rowCount=1.00E+6)
                  :        +- Filter (staticinvoke(class 
org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, 
varcharTypeReadSideCheck, ca_county#40, 30, false, true) IN (Walker 
County,Richland County,Gaines County,Douglas County,Dona Ana County) AND 
isnotnull(ca_address_sk#33)), Statistics(sizeInBytes=233.7 MiB, 
rowCount=1.00E+6)
                  :           +- 
Relation[ca_address_sk#33,ca_address_id#34,ca_street_number#35,ca_street_name#36,ca_street_type#37,ca_suite_number#38,ca_city#39,ca_county#40,ca_state#41,ca_zip#42,ca_country#43,ca_gmt_offset#44,ca_location_type#45]
 parquet, Statistics(sizeInBytes=233.7 MiB, rowCount=1.00E+6)
                  +- Project [cd_demo_sk#46, staticinvoke(class 
org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, 
charTypeReadSideCheck, cd_gender#47, 1, false, true) AS cd_gender#305, 
staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, 
StringType, charTypeReadSideCheck, cd_marital_status#48, 1, false, true) AS 
cd_marital_status#306, staticinvoke(class 
org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, 
charTypeReadSideCheck, cd_education_status#49, 20, false, true) AS 
cd_education_status#307, cd_purchase_estimate#50, staticinvoke(class 
org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, 
charTypeReadSideCheck, cd_credit_rating#51, 10, false, true) AS 
cd_credit_rating#308, cd_dep_count#52, cd_dep_employed_count#53, 
cd_dep_college_count#54], Statistics(sizeInBytes=174.0 MiB, rowCount=1.92E+6)
                     +- Filter isnotnull(cd_demo_sk#46), 
Statistics(sizeInBytes=174.0 MiB, rowCount=1.92E+6)
                        +- 
Relation[cd_demo_sk#46,cd_gender#47,cd_marital_status#48,cd_education_status#49,cd_purchase_estimate#50,cd_credit_rating#51,cd_dep_count#52,cd_dep_employed_count#53,cd_dep_college_count#54]
 parquet, Statistics(sizeInBytes=174.0 MiB, rowCount=1.92E+6)
   
   == Physical Plan ==
   TakeOrderedAndProject(limit=100, orderBy=[cd_gender#305 ASC NULLS 
FIRST,cd_marital_status#306 ASC NULLS FIRST,cd_education_status#307 ASC NULLS 
FIRST,cd_purchase_estimate#50 ASC NULLS FIRST,cd_credit_rating#308 ASC NULLS 
FIRST,cd_dep_count#52 ASC NULLS FIRST,cd_dep_employed_count#53 ASC NULLS 
FIRST,cd_dep_college_count#54 ASC NULLS FIRST], 
output=[cd_gender#305,cd_marital_status#306,cd_education_status#307,cnt1#0L,cd_purchase_estimate#50,cnt2#1L,cd_credit_rating#308,cnt3#2L,cd_dep_count#52,cnt4#3L,cd_dep_employed_count#53,cnt5#4L,cd_dep_college_count#54,cnt6#5L])
   +- *(20) HashAggregate(keys=[cd_gender#305, cd_marital_status#306, 
cd_education_status#307, cd_purchase_estimate#50, cd_credit_rating#308, 
cd_dep_count#52, cd_dep_employed_count#53, cd_dep_college_count#54], 
functions=[count(1)], output=[cd_gender#305, cd_marital_status#306, 
cd_education_status#307, cnt1#0L, cd_purchase_estimate#50, cnt2#1L, 
cd_credit_rating#308, cnt3#2L, cd_dep_count#52, cnt4#3L, 
cd_dep_employed_count#53, cnt5#4L, cd_dep_college_count#54, cnt6#5L])
      +- Exchange hashpartitioning(cd_gender#305, cd_marital_status#306, 
cd_education_status#307, cd_purchase_estimate#50, cd_credit_rating#308, 
cd_dep_count#52, cd_dep_employed_count#53, cd_dep_college_count#54, 5), 
ENSURE_REQUIREMENTS, [id=#537]
         +- *(19) HashAggregate(keys=[cd_gender#305, cd_marital_status#306, 
cd_education_status#307, cd_purchase_estimate#50, cd_credit_rating#308, 
cd_dep_count#52, cd_dep_employed_count#53, cd_dep_college_count#54], 
functions=[partial_count(1)], output=[cd_gender#305, cd_marital_status#306, 
cd_education_status#307, cd_purchase_estimate#50, cd_credit_rating#308, 
cd_dep_count#52, cd_dep_employed_count#53, cd_dep_college_count#54, count#357L])
            +- *(19) Project [cd_gender#305, cd_marital_status#306, 
cd_education_status#307, cd_purchase_estimate#50, cd_credit_rating#308, 
cd_dep_count#52, cd_dep_employed_count#53, cd_dep_college_count#54]
               +- *(19) SortMergeJoin [c_current_cdemo_sk#17], [cd_demo_sk#46], 
Inner
                  :- *(16) Sort [c_current_cdemo_sk#17 ASC NULLS FIRST], false, 0
                  :  +- Exchange hashpartitioning(c_current_cdemo_sk#17, 5), 
ENSURE_REQUIREMENTS, [id=#528]
                  :     +- *(15) Project [c_current_cdemo_sk#17]
                  :        +- *(15) SortMergeJoin [c_current_addr_sk#19], 
[ca_address_sk#33], Inner
                  :           :- *(12) Sort [c_current_addr_sk#19 ASC NULLS 
FIRST], false, 0
                  :           :  +- Exchange 
hashpartitioning(c_current_addr_sk#19, 5), ENSURE_REQUIREMENTS, [id=#520]
                  :           :     +- *(11) Project [c_current_cdemo_sk#17, 
c_current_addr_sk#19]
                  :           :        +- SortMergeJoin [c_customer_sk#15], 
[customer_sk#8], LeftSemi
                  :           :           :- SortMergeJoin [c_customer_sk#15], 
[customer_sk#6], LeftSemi
                  :           :           :  :- *(2) Sort [c_customer_sk#15 ASC 
NULLS FIRST], false, 0
                  :           :           :  :  +- Exchange 
hashpartitioning(c_customer_sk#15, 5), ENSURE_REQUIREMENTS, [id=#332]
                  :           :           :  :     +- *(1) Filter 
((isnotnull(c_customer_sk#15) AND isnotnull(c_current_addr_sk#19)) AND 
isnotnull(c_current_cdemo_sk#17))
                  :           :           :  :        +- *(1) ColumnarToRow
                  :           :           :  :           +- FileScan parquet 
default.customer[c_customer_sk#15,c_current_cdemo_sk#17,c_current_addr_sk#19] 
Batched: true, DataFilters: [isnotnull(c_customer_sk#15), 
isnotnull(c_current_addr_sk#19), isnotnull(c_current_cdemo_sk#17)], Format: 
Parquet, Location: 
InMemoryFileIndex[file:/Users/kentyao/spark/spark-warehouse/org.apache.spark.sql.TPCDSModifiedPla...,
 PartitionFilters: [], PushedFilters: [IsNotNull(c_customer_sk), 
IsNotNull(c_current_addr_sk), IsNotNull(c_current_cdemo_sk)], ReadSchema: 
struct<c_customer_sk:int,c_current_cdemo_sk:int,c_current_addr_sk:int>
                  :           :           :  +- *(7) Sort [customer_sk#6 ASC 
NULLS FIRST], false, 0
                  :           :           :     +- Exchange 
hashpartitioning(customer_sk#6, 5), ENSURE_REQUIREMENTS, [id=#455]
                  :           :           :        +- Union
                  :           :           :           :- *(4) Project 
[ws_bill_customer_sk#59 AS customer_sk#6]
                  :           :           :           :  +- *(4) 
BroadcastHashJoin [ws_sold_date_sk#55], [d_date_sk#89], Inner, BuildRight, false
                  :           :           :           :     :- *(4) Filter 
(isnotnull(ws_sold_date_sk#55) AND isnotnull(ws_bill_customer_sk#59))
                  :           :           :           :     :  +- *(4) 
ColumnarToRow
                  :           :           :           :     :     +- FileScan 
parquet default.web_sales[ws_sold_date_sk#55,ws_bill_customer_sk#59] Batched: 
true, DataFilters: [isnotnull(ws_sold_date_sk#55), 
isnotnull(ws_bill_customer_sk#59)], Format: Parquet, Location: 
InMemoryFileIndex[file:/Users/kentyao/spark/spark-warehouse/org.apache.spark.sql.TPCDSModifiedPla...,
 PartitionFilters: [], PushedFilters: [IsNotNull(ws_sold_date_sk), 
IsNotNull(ws_bill_customer_sk)], ReadSchema: 
struct<ws_sold_date_sk:int,ws_bill_customer_sk:int>
                  :           :           :           :     +- 
BroadcastExchange HashedRelationBroadcastMode(List(cast(input[0, int, true] as 
bigint)),false), [id=#344]
                  :           :           :           :        +- *(3) Project 
[d_date_sk#89]
                  :           :           :           :           +- *(3) 
Filter (((((isnotnull(d_year#95) AND isnotnull(d_moy#97)) AND (d_year#95 = 
2002)) AND (d_moy#97 >= 4)) AND (d_moy#97 <= 7)) AND isnotnull(d_date_sk#89))
                  :           :           :           :              +- *(3) 
ColumnarToRow
                  :           :           :           :                 +- 
FileScan parquet default.date_dim[d_date_sk#89,d_year#95,d_moy#97] Batched: 
true, DataFilters: [isnotnull(d_year#95), isnotnull(d_moy#97), (d_year#95 = 
2002), (d_moy#97 >= 4), (d_moy#97 <= 7),..., Format: Parquet, Location: 
InMemoryFileIndex[file:/Users/kentyao/spark/spark-warehouse/org.apache.spark.sql.TPCDSModifiedPla...,
 PartitionFilters: [], PushedFilters: [IsNotNull(d_year), IsNotNull(d_moy), 
EqualTo(d_year,2002), GreaterThanOrEqual(d_moy,4), LessThan..., ReadSchema: 
struct<d_date_sk:int,d_year:int,d_moy:int>
                  :           :           :           +- *(6) Project 
[cs_ship_customer_sk#124 AS customer_sk#7]
                  :           :           :              +- *(6) 
BroadcastHashJoin [cs_sold_date_sk#117], [d_date_sk#89], Inner, BuildRight, 
false
                  :           :           :                 :- *(6) Filter 
(isnotnull(cs_sold_date_sk#117) AND isnotnull(cs_ship_customer_sk#124))
                  :           :           :                 :  +- *(6) 
ColumnarToRow
                  :           :           :                 :     +- FileScan 
parquet default.catalog_sales[cs_sold_date_sk#117,cs_ship_customer_sk#124] 
Batched: true, DataFilters: [isnotnull(cs_sold_date_sk#117), 
isnotnull(cs_ship_customer_sk#124)], Format: Parquet, Location: 
InMemoryFileIndex[file:/Users/kentyao/spark/spark-warehouse/org.apache.spark.sql.TPCDSModifiedPla...,
 PartitionFilters: [], PushedFilters: [IsNotNull(cs_sold_date_sk), 
IsNotNull(cs_ship_customer_sk)], ReadSchema: 
struct<cs_sold_date_sk:int,cs_ship_customer_sk:int>
                  :           :           :                 +- ReusedExchange 
[d_date_sk#89], BroadcastExchange 
HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), 
[id=#344]
                  :           :           +- *(10) Sort [customer_sk#8 ASC 
NULLS FIRST], false, 0
                  :           :              +- Exchange 
hashpartitioning(customer_sk#8, 5), ENSURE_REQUIREMENTS, [id=#474]
                  :           :                 +- *(9) Project 
[ss_customer_sk#154 AS customer_sk#8]
                  :           :                    +- *(9) BroadcastHashJoin 
[ss_sold_date_sk#151], [d_date_sk#89], Inner, BuildRight, false
                  :           :                       :- *(9) Filter 
(isnotnull(ss_sold_date_sk#151) AND isnotnull(ss_customer_sk#154))
                  :           :                       :  +- *(9) ColumnarToRow
                  :           :                       :     +- FileScan parquet 
default.store_sales[ss_sold_date_sk#151,ss_customer_sk#154] Batched: true, 
DataFilters: [isnotnull(ss_sold_date_sk#151), isnotnull(ss_customer_sk#154)], 
Format: Parquet, Location: 
InMemoryFileIndex[file:/Users/kentyao/spark/spark-warehouse/org.apache.spark.sql.TPCDSModifiedPla...,
 PartitionFilters: [], PushedFilters: [IsNotNull(ss_sold_date_sk), 
IsNotNull(ss_customer_sk)], ReadSchema: 
struct<ss_sold_date_sk:int,ss_customer_sk:int>
                  :           :                       +- ReusedExchange 
[d_date_sk#89], BroadcastExchange 
HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), 
[id=#344]
                  :           +- *(14) Sort [ca_address_sk#33 ASC NULLS FIRST], 
false, 0
                  :              +- Exchange hashpartitioning(ca_address_sk#33, 
5), ENSURE_REQUIREMENTS, [id=#399]
                  :                 +- *(13) Project [ca_address_sk#33]
                  :                    +- *(13) Filter (staticinvoke(class 
org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, 
varcharTypeReadSideCheck, ca_county#40, 30, false, true) IN (Walker 
County,Richland County,Gaines County,Douglas County,Dona Ana County) AND 
isnotnull(ca_address_sk#33))
                  :                       +- *(13) ColumnarToRow
                  :                          +- FileScan parquet 
default.customer_address[ca_address_sk#33,ca_county#40] Batched: true, 
DataFilters: [staticinvoke(class 
org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, 
varch..., Format: Parquet, Location: 
InMemoryFileIndex[file:/Users/kentyao/spark/spark-warehouse/org.apache.spark.sql.TPCDSModifiedPla...,
 PartitionFilters: [], PushedFilters: [IsNotNull(ca_address_sk)], ReadSchema: 
struct<ca_address_sk:int,ca_county:string>
                  +- *(18) Sort [cd_demo_sk#46 ASC NULLS FIRST], false, 0
                     +- Exchange hashpartitioning(cd_demo_sk#46, 5), 
ENSURE_REQUIREMENTS, [id=#417]
                        +- *(17) Project [cd_demo_sk#46, staticinvoke(class 
org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, 
charTypeReadSideCheck, cd_gender#47, 1, false, true) AS cd_gender#305, 
staticinvoke(class org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, 
StringType, charTypeReadSideCheck, cd_marital_status#48, 1, false, true) AS 
cd_marital_status#306, staticinvoke(class 
org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, 
charTypeReadSideCheck, cd_education_status#49, 20, false, true) AS 
cd_education_status#307, cd_purchase_estimate#50, staticinvoke(class 
org.apache.spark.sql.catalyst.util.CharVarcharCodegenUtils, StringType, 
charTypeReadSideCheck, cd_credit_rating#51, 10, false, true) AS 
cd_credit_rating#308, cd_dep_count#52, cd_dep_employed_count#53, 
cd_dep_college_count#54]
                           +- *(17) Filter isnotnull(cd_demo_sk#46)
                              +- *(17) ColumnarToRow
                                 +- FileScan parquet 
default.customer_demographics[cd_demo_sk#46,cd_gender#47,cd_marital_status#48,cd_education_status#49,cd_purchase_estimate#50,cd_credit_rating#51,cd_dep_count#52,cd_dep_employed_count#53,cd_dep_college_count#54]
 Batched: true, DataFilters: [isnotnull(cd_demo_sk#46)], Format: Parquet, 
Location: 
InMemoryFileIndex[file:/Users/kentyao/spark/spark-warehouse/org.apache.spark.sql.TPCDSModifiedPla...,
 PartitionFilters: [], PushedFilters: [IsNotNull(cd_demo_sk)], ReadSchema: 
struct<cd_demo_sk:int,cd_gender:string,cd_marital_status:string,cd_education_status:string,cd_pur...
   
   ````


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



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to