digraph G {
0 [labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>"];
subgraph cluster1 {
isCluster="true";
label="WholeStageCodegen (3)\n \nduration: 0 ms";
2 [labelType="html" label="<b>HashAggregate</b><br><br>time in aggregation build: 0 ms<br>number of output rows: 1"];
}
3 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 1<br>local merged chunks fetched: 0<br>shuffle write time: 0 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 1<br>local bytes read: 59.0 B<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 1<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 16.0 B<br>local merged bytes read: 0.0 B<br>number of partitions: 1<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 59.0 B"];
subgraph cluster4 {
isCluster="true";
label="WholeStageCodegen (2)\n \nduration: 7 ms";
5 [labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 6 ms<br>peak memory: 0.0 B<br>number of output rows: 1<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0"];
6 [labelType="html" label="<br><b>Project</b><br><br>"];
7 [labelType="html" label="<b>Filter</b><br><br>number of output rows: 27"];
8 [labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 1 ms<br>peak memory: 64.2 MiB<br>number of output rows: 548<br>number of sort fallback tasks: 0<br>avg hash probes per key: 1"];
}
9 [labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 6.9 KiB<br>number of coalesced partitions: 1"];
10 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 548<br>local merged chunks fetched: 0<br>shuffle write time: 2 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 548<br>local bytes read: 6.6 KiB<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 1<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 21.4 KiB<br>local merged bytes read: 0.0 B<br>number of partitions: 10<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 6.6 KiB"];
subgraph cluster11 {
isCluster="true";
label="WholeStageCodegen (1)\n \nduration: 15 ms";
12 [labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 10 ms<br>peak memory: 256.0 KiB<br>number of output rows: 548<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0"];
13 [labelType="html" label="<br><b>Project</b><br><br>"];
14 [labelType="html" label="<b>Filter</b><br><br>number of output rows: 717"];
15 [labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 717<br>number of input batches: 1"];
}
16 [labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 4 ms<br>metadata time: 0 ms<br>size of files read: 26.2 KiB<br>number of output rows: 717"];
2->0;
3->2;
5->3;
6->5;
7->6;
8->7;
9->8;
10->9;
12->10;
13->12;
14->13;
15->14;
16->15;
}
17
AdaptiveSparkPlan isFinalPlan=true
HashAggregate(keys=[], functions=[count(1)])
WholeStageCodegen (3)
Exchange SinglePartition, ENSURE_REQUIREMENTS, [plan_id=3018]
HashAggregate(keys=[], functions=[partial_count(1)])
Project
Filter (((CASE WHEN isnull(Contains(COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, 2333)) THEN false ELSE Contains(COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, 2333) END OR Contains(cast(COL_271E49E1_A230_499E_8192_978ECEDAE3B0#15938L as string), 2333)) OR CASE WHEN isnull(Contains(COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, 2333)) THEN false ELSE Contains(COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, 2333) END) OR CASE WHEN isnull(Contains(COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945, 2333)) THEN false ELSE Contains(COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945, 2333) END)
HashAggregate(keys=[COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880], functions=[count(1)])
WholeStageCodegen (2)
AQEShuffleRead coalesced
Exchange hashpartitioning(COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, 10), ENSURE_REQUIREMENTS, [plan_id=2903]
HashAggregate(keys=[COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880], functions=[partial_count(1)])
Project [str_join(array(IN_UNIT_3349#15642, OUT_UNIT_3350#15645), >) AS COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880]
Filter NOT (str_join(array(E, str_extract_by_str(str_join(array(IN_UNIT_3349#15642, OUT_UNIT_3350#15645), >), >, LEFT)), -) <=> str_join(array(S, str_extract_by_str(str_join(array(IN_UNIT_3349#15642, OUT_UNIT_3350#15645), >), >, RIGHT)), -))
ColumnarToRow
WholeStageCodegen (1)
FileScan parquet [IN_UNIT_3349#15642,OUT_UNIT_3350#15645] Batched: true, DataFilters: [NOT (str_join(array(E, str_extract_by_str(str_join(array(IN_UNIT_3349#15642, OUT_UNIT_3350#15645..., Format: Parquet, Location: InMemoryFileIndex(1 paths)[file:/data/output/cache/parquet/uet/VISIT_3342], PartitionFilters: [], PushedFilters: [], ReadSchema: struct<IN_UNIT_3349:string,OUT_UNIT_3350:string>
== Physical Plan ==
AdaptiveSparkPlan (26)
+- == Final Plan ==
* HashAggregate (15)
+- ShuffleQueryStage (14), Statistics(sizeInBytes=16.0 B, rowCount=1)
+- Exchange (13)
+- * HashAggregate (12)
+- * Project (11)
+- * Filter (10)
+- * HashAggregate (9)
+- AQEShuffleRead (8)
+- ShuffleQueryStage (7), Statistics(sizeInBytes=21.4 KiB, rowCount=548)
+- Exchange (6)
+- * HashAggregate (5)
+- * Project (4)
+- * Filter (3)
+- * ColumnarToRow (2)
+- Scan parquet (1)
+- == Initial Plan ==
HashAggregate (25)
+- Exchange (24)
+- HashAggregate (23)
+- Project (22)
+- Filter (21)
+- HashAggregate (20)
+- Exchange (19)
+- HashAggregate (18)
+- Project (17)
+- Filter (16)
+- Scan parquet (1)
(1) Scan parquet
Output [2]: [IN_UNIT_3349#15642, OUT_UNIT_3350#15645]
Batched: true
Location: InMemoryFileIndex [file:/data/output/cache/parquet/uet/VISIT_3342]
ReadSchema: struct<IN_UNIT_3349:string,OUT_UNIT_3350:string>
(2) ColumnarToRow [codegen id : 1]
Input [2]: [IN_UNIT_3349#15642, OUT_UNIT_3350#15645]
(3) Filter [codegen id : 1]
Input [2]: [IN_UNIT_3349#15642, OUT_UNIT_3350#15645]
Condition : NOT (str_join(array(E, str_extract_by_str(str_join(array(IN_UNIT_3349#15642, OUT_UNIT_3350#15645), >), >, LEFT)), -) <=> str_join(array(S, str_extract_by_str(str_join(array(IN_UNIT_3349#15642, OUT_UNIT_3350#15645), >), >, RIGHT)), -))
(4) Project [codegen id : 1]
Output [1]: [str_join(array(IN_UNIT_3349#15642, OUT_UNIT_3350#15645), >) AS COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880]
Input [2]: [IN_UNIT_3349#15642, OUT_UNIT_3350#15645]
(5) HashAggregate [codegen id : 1]
Input [1]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880]
Keys [1]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#16285L]
Results [2]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, count#16286L]
(6) Exchange
Input [2]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, count#16286L]
Arguments: hashpartitioning(COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, 10), ENSURE_REQUIREMENTS, [plan_id=2903]
(7) ShuffleQueryStage
Output [2]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, count#16286L]
Arguments: 0
(8) AQEShuffleRead
Input [2]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, count#16286L]
Arguments: coalesced
(9) HashAggregate [codegen id : 2]
Input [2]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, count#16286L]
Keys [1]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#15924L]
Results [4]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880 AS COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, count(1)#15924L AS COL_271E49E1_A230_499E_8192_978ECEDAE3B0#15938L, str_join(array(E, str_extract_by_str(COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, >, LEFT)), -) AS COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, str_join(array(S, str_extract_by_str(COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, >, RIGHT)), -) AS COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945]
(10) Filter [codegen id : 2]
Input [4]: [COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, COL_271E49E1_A230_499E_8192_978ECEDAE3B0#15938L, COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945]
Condition : (((CASE WHEN isnull(Contains(COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, 2333)) THEN false ELSE Contains(COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, 2333) END OR Contains(cast(COL_271E49E1_A230_499E_8192_978ECEDAE3B0#15938L as string), 2333)) OR CASE WHEN isnull(Contains(COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, 2333)) THEN false ELSE Contains(COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, 2333) END) OR CASE WHEN isnull(Contains(COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945, 2333)) THEN false ELSE Contains(COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945, 2333) END)
(11) Project [codegen id : 2]
Output: []
Input [4]: [COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, COL_271E49E1_A230_499E_8192_978ECEDAE3B0#15938L, COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945]
(12) HashAggregate [codegen id : 2]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#16283L]
Results [1]: [count#16284L]
(13) Exchange
Input [1]: [count#16284L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=3018]
(14) ShuffleQueryStage
Output [1]: [count#16284L]
Arguments: 1
(15) HashAggregate [codegen id : 3]
Input [1]: [count#16284L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#16110L]
Results [1]: [count(1)#16110L AS count#16111L]
(16) Filter
Input [2]: [IN_UNIT_3349#15642, OUT_UNIT_3350#15645]
Condition : NOT (str_join(array(E, str_extract_by_str(str_join(array(IN_UNIT_3349#15642, OUT_UNIT_3350#15645), >), >, LEFT)), -) <=> str_join(array(S, str_extract_by_str(str_join(array(IN_UNIT_3349#15642, OUT_UNIT_3350#15645), >), >, RIGHT)), -))
(17) Project
Output [1]: [str_join(array(IN_UNIT_3349#15642, OUT_UNIT_3350#15645), >) AS COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880]
Input [2]: [IN_UNIT_3349#15642, OUT_UNIT_3350#15645]
(18) HashAggregate
Input [1]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880]
Keys [1]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#16285L]
Results [2]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, count#16286L]
(19) Exchange
Input [2]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, count#16286L]
Arguments: hashpartitioning(COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, 10), ENSURE_REQUIREMENTS, [plan_id=2867]
(20) HashAggregate
Input [2]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, count#16286L]
Keys [1]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#15924L]
Results [4]: [COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880 AS COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, count(1)#15924L AS COL_271E49E1_A230_499E_8192_978ECEDAE3B0#15938L, str_join(array(E, str_extract_by_str(COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, >, LEFT)), -) AS COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, str_join(array(S, str_extract_by_str(COL_EB0E2C34_212C_41D4_8CFF_862A35B3D6B5#15880, >, RIGHT)), -) AS COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945]
(21) Filter
Input [4]: [COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, COL_271E49E1_A230_499E_8192_978ECEDAE3B0#15938L, COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945]
Condition : (((CASE WHEN isnull(Contains(COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, 2333)) THEN false ELSE Contains(COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, 2333) END OR Contains(cast(COL_271E49E1_A230_499E_8192_978ECEDAE3B0#15938L as string), 2333)) OR CASE WHEN isnull(Contains(COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, 2333)) THEN false ELSE Contains(COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, 2333) END) OR CASE WHEN isnull(Contains(COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945, 2333)) THEN false ELSE Contains(COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945, 2333) END)
(22) Project
Output: []
Input [4]: [COL_5ED88E4F_DF86_440D_9CC6_0C93B876ABF9#15937, COL_271E49E1_A230_499E_8192_978ECEDAE3B0#15938L, COL_58CFE2E8_1D65_4D01_9EF3_F725F7BA87ED#15941, COL_E7F5DF76_76CE_4B86_B00C_668C338F8FFF#15945]
(23) HashAggregate
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#16283L]
Results [1]: [count#16284L]
(24) Exchange
Input [1]: [count#16284L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=2873]
(25) HashAggregate
Input [1]: [count#16284L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#16110L]
Results [1]: [count(1)#16110L AS count#16111L]
(26) AdaptiveSparkPlan
Output [1]: [count#16111L]
Arguments: isFinalPlan=true