|
| 1 | +== Physical Plan == |
| 2 | +AdaptiveSparkPlan (26) |
| 3 | ++- == Final Plan == |
| 4 | + NativeSort (17) |
| 5 | + +- InputAdapter (16) |
| 6 | + +- AQEShuffleRead (15) |
| 7 | + +- ShuffleQueryStage (14), Statistics(sizeInBytes=2.6 KiB, rowCount=4) |
| 8 | + +- NativeShuffleExchange (13) |
| 9 | + +- NativeProject (12) |
| 10 | + +- NativeHashAggregate (11) |
| 11 | + +- InputAdapter (10) |
| 12 | + +- AQEShuffleRead (9) |
| 13 | + +- ShuffleQueryStage (8), Statistics(sizeInBytes=1736.0 B, rowCount=4) |
| 14 | + +- NativeShuffleExchange (7) |
| 15 | + +- NativeHashAggregate (6) |
| 16 | + +- NativeProject (5) |
| 17 | + +- NativeProject (4) |
| 18 | + +- NativeFilter (3) |
| 19 | + +- InputAdapter (2) |
| 20 | + +- NativeParquetScan (1) |
| 21 | ++- == Initial Plan == |
| 22 | + Sort (25) |
| 23 | + +- Exchange (24) |
| 24 | + +- HashAggregate (23) |
| 25 | + +- Exchange (22) |
| 26 | + +- HashAggregate (21) |
| 27 | + +- Project (20) |
| 28 | + +- Filter (19) |
| 29 | + +- Scan parquet (18) |
| 30 | + |
| 31 | + |
| 32 | +(18) Scan parquet |
| 33 | +Output [7]: [l_quantity#1, l_extendedprice#2, l_discount#3, l_tax#4, l_returnflag#5, l_linestatus#6, l_shipdate#7] |
| 34 | +Batched: true |
| 35 | +Location: InMemoryFileIndex [file:/<warehouse_dir>] |
| 36 | +PushedFilters: [IsNotNull(l_shipdate), LessThanOrEqual(l_shipdate,1998-09-02)] |
| 37 | +ReadSchema: struct<l_quantity:decimal(12,2),l_extendedprice:decimal(12,2),l_discount:decimal(12,2),l_tax:decimal(12,2),l_returnflag:string,l_linestatus:string,l_shipdate:date> |
| 38 | + |
| 39 | +(2) InputAdapter |
| 40 | +Input [7]: [l_quantity#1, l_extendedprice#2, l_discount#3, l_tax#4, l_returnflag#5, l_linestatus#6, l_shipdate#7] |
| 41 | +Arguments: [#1, #2, #3, #4, #5, #6, #7] |
| 42 | + |
| 43 | +(3) NativeFilter |
| 44 | +Input [7]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7] |
| 45 | +Condition : (isnotnull(l_shipdate#7) AND (l_shipdate#7 <= 1998-09-02)) |
| 46 | + |
| 47 | +(4) NativeProject |
| 48 | +Output [6]: [l_quantity#1, l_extendedprice#2, l_discount#3, l_tax#4, l_returnflag#5, l_linestatus#6] |
| 49 | +Input [7]: [#1#1, #2#2, #3#3, #4#4, #5#5, #6#6, #7#7] |
| 50 | + |
| 51 | +(5) NativeProject |
| 52 | +Output [7]: [l_returnflag#5 AS l_returnflag#5, l_linestatus#6 AS l_linestatus#6, l_quantity#1 AS _c2#8, l_extendedprice#2 AS _c3#9, (l_extendedprice#2 * (1 - l_discount#3)) AS _c4#10, ((l_extendedprice#2 * (1 - l_discount#3)) * (1 + l_tax#4)) AS _c5#11, l_discount#3 AS _c6#12] |
| 53 | +Input [6]: [l_quantity#1, l_extendedprice#2, l_discount#3, l_tax#4, l_returnflag#5, l_linestatus#6] |
| 54 | + |
| 55 | +(6) NativeHashAggregate |
| 56 | +Input [7]: [l_returnflag#5, l_linestatus#6, _c2#8, _c3#9, _c4#10, _c5#11, _c6#12] |
| 57 | +Keys [2]: [l_returnflag#5, l_linestatus#6] |
| 58 | +Functions [8]: [partial_sum(_c2#8), partial_sum(_c3#9), partial_sum(_c4#10), partial_sum(_c5#11), partial_avg(_c2#8), partial_avg(_c3#9), partial_avg(_c6#12), partial_count(1)] |
| 59 | +Aggregate Attributes [15]: [sum#13, isEmpty#14, sum#15, isEmpty#16, sum#17, isEmpty#18, sum#19, isEmpty#20, sum#21, count#22, sum#23, count#24, sum#25, count#26, count#27] |
| 60 | +Results [3]: [l_returnflag#5, l_linestatus#6, #28#28] |
| 61 | + |
| 62 | +(7) NativeShuffleExchange |
| 63 | +Input [3]: [l_returnflag#5, l_linestatus#6, #28#28] |
| 64 | +Arguments: hashpartitioning(l_returnflag#5, l_linestatus#6, 5), ENSURE_REQUIREMENTS, [plan_id=1] |
| 65 | + |
| 66 | +(8) ShuffleQueryStage |
| 67 | +Output [3]: [l_returnflag#5, l_linestatus#6, #28#28] |
| 68 | +Arguments: X |
| 69 | + |
| 70 | +(9) AQEShuffleRead |
| 71 | +Input [3]: [l_returnflag#5, l_linestatus#6, #28#28] |
| 72 | +Arguments: coalesced |
| 73 | + |
| 74 | +(10) InputAdapter |
| 75 | +Input [3]: [l_returnflag#5, l_linestatus#6, #28#28] |
| 76 | + |
| 77 | +(11) NativeHashAggregate |
| 78 | +Input [3]: [l_returnflag#5, l_linestatus#6, #28#28] |
| 79 | +Keys [2]: [l_returnflag#5, l_linestatus#6] |
| 80 | +Functions [8]: [sum(l_quantity#1), sum(l_extendedprice#2), sum((l_extendedprice#2 * (1 - l_discount#3))), sum(((l_extendedprice#2 * (1 - l_discount#3)) * (1 + l_tax#4))), avg(l_quantity#1), avg(l_extendedprice#2), avg(l_discount#3), count(1)] |
| 81 | +Aggregate Attributes [8]: [sum(l_quantity#1)#29, sum(l_extendedprice#2)#30, sum((l_extendedprice#2 * (1 - l_discount#3)))#31, sum(((l_extendedprice#2 * (1 - l_discount#3)) * (1 + l_tax#4)))#32, avg(l_quantity#1)#33, avg(l_extendedprice#2)#34, avg(l_discount#3)#35, count(1)#36] |
| 82 | +Results [10]: [l_returnflag#5, l_linestatus#6, sum(l_quantity#1)#29, sum(l_extendedprice#2)#30, sum((l_extendedprice#2 * (1 - l_discount#3)))#31, sum(((l_extendedprice#2 * (1 - l_discount#3)) * (1 + l_tax#4)))#32, avg(l_quantity#1)#33, avg(l_extendedprice#2)#34, avg(l_discount#3)#35, count(1)#36] |
| 83 | + |
| 84 | +(12) NativeProject |
| 85 | +Output [10]: [l_returnflag#5, l_linestatus#6, sum(l_quantity#1)#29 AS sum_qty#37, sum(l_extendedprice#2)#30 AS sum_base_price#38, sum((l_extendedprice#2 * (1 - l_discount#3)))#31 AS sum_disc_price#39, sum(((l_extendedprice#2 * (1 - l_discount#3)) * (1 + l_tax#4)))#32 AS sum_charge#40, avg(l_quantity#1)#33 AS avg_qty#41, avg(l_extendedprice#2)#34 AS avg_price#42, avg(l_discount#3)#35 AS avg_disc#43, count(1)#36 AS count_order#44] |
| 86 | +Input [10]: [l_returnflag#5, l_linestatus#6, sum(l_quantity#1)#29, sum(l_extendedprice#2)#30, sum((l_extendedprice#2 * (1 - l_discount#3)))#31, sum(((l_extendedprice#2 * (1 - l_discount#3)) * (1 + l_tax#4)))#32, avg(l_quantity#1)#33, avg(l_extendedprice#2)#34, avg(l_discount#3)#35, count(1)#36] |
| 87 | + |
| 88 | +(13) NativeShuffleExchange |
| 89 | +Input [10]: [l_returnflag#5, l_linestatus#6, sum_qty#37, sum_base_price#38, sum_disc_price#39, sum_charge#40, avg_qty#41, avg_price#42, avg_disc#43, count_order#44] |
| 90 | +Arguments: rangepartitioning(l_returnflag#5 ASC NULLS FIRST, l_linestatus#6 ASC NULLS FIRST, 5), ENSURE_REQUIREMENTS, [plan_id=2] |
| 91 | + |
| 92 | +(14) ShuffleQueryStage |
| 93 | +Output [10]: [l_returnflag#5, l_linestatus#6, sum_qty#37, sum_base_price#38, sum_disc_price#39, sum_charge#40, avg_qty#41, avg_price#42, avg_disc#43, count_order#44] |
| 94 | +Arguments: X |
| 95 | + |
| 96 | +(15) AQEShuffleRead |
| 97 | +Input [10]: [l_returnflag#5, l_linestatus#6, sum_qty#37, sum_base_price#38, sum_disc_price#39, sum_charge#40, avg_qty#41, avg_price#42, avg_disc#43, count_order#44] |
| 98 | +Arguments: coalesced |
| 99 | + |
| 100 | +(16) InputAdapter |
| 101 | +Input [10]: [l_returnflag#5, l_linestatus#6, sum_qty#37, sum_base_price#38, sum_disc_price#39, sum_charge#40, avg_qty#41, avg_price#42, avg_disc#43, count_order#44] |
| 102 | + |
| 103 | +(17) NativeSort |
| 104 | +Input [10]: [l_returnflag#5, l_linestatus#6, sum_qty#37, sum_base_price#38, sum_disc_price#39, sum_charge#40, avg_qty#41, avg_price#42, avg_disc#43, count_order#44] |
| 105 | +Arguments: [l_returnflag#5 ASC NULLS FIRST, l_linestatus#6 ASC NULLS FIRST], true |
| 106 | + |
| 107 | +(18) Scan parquet |
| 108 | +Output [7]: [l_quantity#1, l_extendedprice#2, l_discount#3, l_tax#4, l_returnflag#5, l_linestatus#6, l_shipdate#7] |
| 109 | +Batched: true |
| 110 | +Location: InMemoryFileIndex [file:/<warehouse_dir>] |
| 111 | +PushedFilters: [IsNotNull(l_shipdate), LessThanOrEqual(l_shipdate,1998-09-02)] |
| 112 | +ReadSchema: struct<l_quantity:decimal(12,2),l_extendedprice:decimal(12,2),l_discount:decimal(12,2),l_tax:decimal(12,2),l_returnflag:string,l_linestatus:string,l_shipdate:date> |
| 113 | + |
| 114 | +(19) Filter |
| 115 | +Input [7]: [l_quantity#1, l_extendedprice#2, l_discount#3, l_tax#4, l_returnflag#5, l_linestatus#6, l_shipdate#7] |
| 116 | +Condition : (isnotnull(l_shipdate#7) AND (l_shipdate#7 <= 1998-09-02)) |
| 117 | + |
| 118 | +(20) Project |
| 119 | +Output [6]: [l_quantity#1, l_extendedprice#2, l_discount#3, l_tax#4, l_returnflag#5, l_linestatus#6] |
| 120 | +Input [7]: [l_quantity#1, l_extendedprice#2, l_discount#3, l_tax#4, l_returnflag#5, l_linestatus#6, l_shipdate#7] |
| 121 | + |
| 122 | +(21) HashAggregate |
| 123 | +Input [6]: [l_quantity#1, l_extendedprice#2, l_discount#3, l_tax#4, l_returnflag#5, l_linestatus#6] |
| 124 | +Keys [2]: [l_returnflag#5, l_linestatus#6] |
| 125 | +Functions [8]: [partial_sum(l_quantity#1), partial_sum(l_extendedprice#2), partial_sum((l_extendedprice#2 * (1 - l_discount#3))), partial_sum(((l_extendedprice#2 * (1 - l_discount#3)) * (1 + l_tax#4))), partial_avg(l_quantity#1), partial_avg(l_extendedprice#2), partial_avg(l_discount#3), partial_count(1)] |
| 126 | +Aggregate Attributes [15]: [sum#13, isEmpty#14, sum#15, isEmpty#16, sum#17, isEmpty#18, sum#19, isEmpty#20, sum#21, count#22, sum#23, count#24, sum#25, count#26, count#27] |
| 127 | +Results [17]: [l_returnflag#5, l_linestatus#6, sum#45, isEmpty#46, sum#47, isEmpty#48, sum#49, isEmpty#50, sum#51, isEmpty#52, sum#53, count#54, sum#55, count#56, sum#57, count#58, count#59] |
| 128 | + |
| 129 | +(22) Exchange |
| 130 | +Input [17]: [l_returnflag#5, l_linestatus#6, sum#45, isEmpty#46, sum#47, isEmpty#48, sum#49, isEmpty#50, sum#51, isEmpty#52, sum#53, count#54, sum#55, count#56, sum#57, count#58, count#59] |
| 131 | +Arguments: hashpartitioning(l_returnflag#5, l_linestatus#6, 5), ENSURE_REQUIREMENTS, [plan_id=3] |
| 132 | + |
| 133 | +(23) HashAggregate |
| 134 | +Input [17]: [l_returnflag#5, l_linestatus#6, sum#45, isEmpty#46, sum#47, isEmpty#48, sum#49, isEmpty#50, sum#51, isEmpty#52, sum#53, count#54, sum#55, count#56, sum#57, count#58, count#59] |
| 135 | +Keys [2]: [l_returnflag#5, l_linestatus#6] |
| 136 | +Functions [8]: [sum(l_quantity#1), sum(l_extendedprice#2), sum((l_extendedprice#2 * (1 - l_discount#3))), sum(((l_extendedprice#2 * (1 - l_discount#3)) * (1 + l_tax#4))), avg(l_quantity#1), avg(l_extendedprice#2), avg(l_discount#3), count(1)] |
| 137 | +Aggregate Attributes [8]: [sum(l_quantity#1)#29, sum(l_extendedprice#2)#30, sum((l_extendedprice#2 * (1 - l_discount#3)))#31, sum(((l_extendedprice#2 * (1 - l_discount#3)) * (1 + l_tax#4)))#32, avg(l_quantity#1)#33, avg(l_extendedprice#2)#34, avg(l_discount#3)#35, count(1)#36] |
| 138 | +Results [10]: [l_returnflag#5, l_linestatus#6, sum(l_quantity#1)#29 AS sum_qty#37, sum(l_extendedprice#2)#30 AS sum_base_price#38, sum((l_extendedprice#2 * (1 - l_discount#3)))#31 AS sum_disc_price#39, sum(((l_extendedprice#2 * (1 - l_discount#3)) * (1 + l_tax#4)))#32 AS sum_charge#40, avg(l_quantity#1)#33 AS avg_qty#41, avg(l_extendedprice#2)#34 AS avg_price#42, avg(l_discount#3)#35 AS avg_disc#43, count(1)#36 AS count_order#44] |
| 139 | + |
| 140 | +(24) Exchange |
| 141 | +Input [10]: [l_returnflag#5, l_linestatus#6, sum_qty#37, sum_base_price#38, sum_disc_price#39, sum_charge#40, avg_qty#41, avg_price#42, avg_disc#43, count_order#44] |
| 142 | +Arguments: rangepartitioning(l_returnflag#5 ASC NULLS FIRST, l_linestatus#6 ASC NULLS FIRST, 5), ENSURE_REQUIREMENTS, [plan_id=4] |
| 143 | + |
| 144 | +(25) Sort |
| 145 | +Input [10]: [l_returnflag#5, l_linestatus#6, sum_qty#37, sum_base_price#38, sum_disc_price#39, sum_charge#40, avg_qty#41, avg_price#42, avg_disc#43, count_order#44] |
| 146 | +Arguments: [l_returnflag#5 ASC NULLS FIRST, l_linestatus#6 ASC NULLS FIRST], true, 0 |
| 147 | + |
| 148 | +(26) AdaptiveSparkPlan |
| 149 | +Output [10]: [l_returnflag#5, l_linestatus#6, sum_qty#37, sum_base_price#38, sum_disc_price#39, sum_charge#40, avg_qty#41, avg_price#42, avg_disc#43, count_order#44] |
| 150 | +Arguments: isFinalPlan=true |
| 151 | + |
0 commit comments