digraph G {
0 [labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>"];
subgraph cluster1 {
isCluster="true";
label="WholeStageCodegen (8)\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: 89.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: 104.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: 89.0 B"];
subgraph cluster4 {
isCluster="true";
label="WholeStageCodegen (7)\n \nduration: 28 ms";
5 [labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 28 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>SortMergeJoin</b><br><br>number of output rows: 483<br>spill size: 0.0 B"];
}
subgraph cluster8 {
isCluster="true";
label="WholeStageCodegen (5)\n \nduration: 117 ms";
9 [labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 16.1 MiB<br>spill size: 0.0 B"];
}
10 [labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 10.3 KiB<br>number of coalesced partitions: 1"];
11 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 701<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: 701<br>local bytes read: 9.9 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.9 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: 9.9 KiB"];
12 [labelType="html" label="<br><b>Project</b><br><br>"];
13 [labelType="html" label="<b>Filter</b><br><br>number of output rows: 701"];
subgraph cluster14 {
isCluster="true";
label="WholeStageCodegen (1)\n \nduration: 485 ms";
15 [labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 1,002<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: 153.6 KiB<br>number of output rows: 1,002"];
subgraph cluster17 {
isCluster="true";
label="WholeStageCodegen (6)\n \nduration: 0 ms";
18 [labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 16.1 MiB<br>spill size: 0.0 B"];
}
19 [labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 18.3 KiB<br>number of coalesced partitions: 1"];
20 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 1,505<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: 1,505<br>local bytes read: 17.3 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: 47.0 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: 17.3 KiB"];
subgraph cluster21 {
isCluster="true";
label="WholeStageCodegen (4)\n \nduration: 51 ms";
22 [labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 11 ms<br>peak memory: 256.0 KiB<br>number of output rows: 1,505<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0"];
}
23 [labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 128.6 KiB<br>number of coalesced partitions: 1"];
24 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 1,505<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>19 ms (1 ms, 4 ms, 4 ms (stage 359.0: task 480))<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,505<br>local bytes read: 123.2 KiB<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 6<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size total (min, med, max (stageId: taskId))<br>184.0 KiB (880.0 B, 36.6 KiB, 37.1 KiB (stage 359.0: task 479))<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 total (min, med, max (stageId: taskId))<br>123.2 KiB (1008.0 B, 24.4 KiB, 24.7 KiB (stage 359.0: task 479))"];
subgraph cluster25 {
isCluster="true";
label="WholeStageCodegen (3)\n \nduration: total (min, med, max (stageId: taskId))\n1.9 s (114 ms, 244 ms, 315 ms (stage 359.0: task 481))";
26 [labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build total (min, med, max (stageId: taskId))<br>1.2 s (36 ms, 167 ms, 239 ms (stage 359.0: task 481))<br>peak memory total (min, med, max (stageId: taskId))<br>2.3 MiB (256.0 KiB, 256.0 KiB, 256.0 KiB (stage 359.0: task 485))<br>number of output rows: 1,505<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0"];
}
27 [labelType="html" label="<br><b>Project</b><br><br>"];
subgraph cluster28 {
isCluster="true";
label="WholeStageCodegen (2)\n \nduration: total (min, med, max (stageId: taskId))\n2.3 s (164 ms, 293 ms, 361 ms (stage 359.0: task 481))";
29 [labelType="html" label="<b>Filter</b><br><br>number of output rows: 1,505"];
30 [labelType="html" label="<b>Generate</b><br><br>number of output rows: 1,507"];
}
31 [labelType="html" label="<br><b>Project</b><br><br>"];
32 [labelType="html" label="<b>Filter</b><br><br>number of output rows: 16"];
33 [labelType="html" label="<b>Scan text </b><br><br>number of output rows: 30<br>number of files read: 30<br>metadata time: 0 ms<br>size of files read: 266.0 KiB"];
2->0;
3->2;
5->3;
6->5;
7->6;
9->7;
10->9;
11->10;
12->11;
13->12;
15->13;
16->15;
18->7;
19->18;
20->19;
22->20;
23->22;
24->23;
26->24;
27->26;
29->27;
30->29;
31->30;
32->31;
33->32;
}
34
AdaptiveSparkPlan isFinalPlan=true
HashAggregate(keys=[], functions=[avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710), avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459), avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837), avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015), avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120), avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#58200)])
WholeStageCodegen (8)
Exchange SinglePartition, ENSURE_REQUIREMENTS, [plan_id=6535]
HashAggregate(keys=[], functions=[partial_avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710), partial_avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459), partial_avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837), partial_avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015), partial_avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120), partial_avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#58200)])
Project [dec_to_int(dec_round(dec_operator(PRODUIT, array(dec_operator(DIVISION, array(COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#55570L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533)))), 100.0)), 2)) AS COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459, str_to_integer(str_create(0)) AS COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710, str_to_integer(str_create(100)) AS COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837, str_to_integer(str_create(25)) AS COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015, str_to_integer(str_create(50)) AS COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120, str_to_integer(str_create(75)) AS COL_CA890354_B95E_461B_87B4_7F83650C3820#58200]
SortMergeJoin [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520], [INFORMATION_STA_119303_STATIONCODE_119307#55573], Inner, CASE WHEN isnull(dec_to_int(dec_round(dec_operator(PRODUIT, array(dec_operator(DIVISION, array(COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#55570L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533)))), 100.0)), 2))) THEN false ELSE (dec_to_int(dec_round(dec_operator(PRODUIT, array(dec_operator(DIVISION, array(COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#55570L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533)))), 100.0)), 2)) > 20) END
WholeStageCodegen (7)
Sort [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520 ASC NULLS FIRST], false, 0
WholeStageCodegen (5)
AQEShuffleRead coalesced
Exchange hashpartitioning(COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, 10), ENSURE_REQUIREMENTS, [plan_id=6033]
Project [get_json_object(FIELDS_119275#54381, $.stationcode) AS COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, str_to_integer(get_json_object(FIELDS_119275#54381, $.numbikesavailable)) AS COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533]
Filter ((str_remove_accent(upper(str_if_with_rule((CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike)) > 0) END AND CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical)) > 0) END), Mécaniques + Electriques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical)) > 0) END, Mécaniques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike)) > 0) END, Electriques, Pas de disponibilité))))) <=> MECANIQUES + ELECTRIQUES) AND isnotnull(get_json_object(FIELDS_119275#54381, $.stationcode)))
ColumnarToRow
WholeStageCodegen (1)
FileScan parquet [FIELDS_119275#54381] Batched: true, DataFilters: [(str_remove_accent(upper(str_if_with_rule((CASE WHEN isnull(str_to_integer(get_json_object(FIELD..., Format: Parquet, Location: InMemoryFileIndex(1 paths)[file:/data/output/cache/parquet/uet/VLIB_JSON_119273], PartitionFilters: [], PushedFilters: [], ReadSchema: struct<FIELDS_119275:string>
Sort [INFORMATION_STA_119303_STATIONCODE_119307#55573 ASC NULLS FIRST], false, 0
WholeStageCodegen (6)
AQEShuffleRead coalesced
Exchange hashpartitioning(INFORMATION_STA_119303_STATIONCODE_119307#55573, 10), ENSURE_REQUIREMENTS, [plan_id=6248]
HashAggregate(keys=[CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602], functions=[])
WholeStageCodegen (4)
AQEShuffleRead coalesced
Exchange hashpartitioning(CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602, 10), ENSURE_REQUIREMENTS, [plan_id=6091]
HashAggregate(keys=[CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602], functions=[])
WholeStageCodegen (3)
Project [root#54554.capacity AS CAPACITY_119304#54599L, to_json(root#54554.coordonnees_geo, Some(Etc/UTC)) AS COORDONNEES_GEO_119305#54600, root#54554.name AS NAME_119306#54601, root#54554.stationcode AS STATIONCODE_119307#54602]
Filter (CASE WHEN isnull(bigint_to_int(root#54554.capacity)) THEN false ELSE (bigint_to_int(root#54554.capacity) > 0) END AND isnotnull(root#54554.stationcode))
Generate explode(root#54531), false, [root#54554]
WholeStageCodegen (2)
Project [from_json(ArrayType(StructType(StructField(capacity,LongType,true),StructField(coordonnees_geo,StructType(StructField(lat,DoubleType,true),StructField(lon,DoubleType,true)),true),StructField(name,StringType,true),StructField(station_opening_hours,StringType,true),StructField(stationcode,StringType,true)),true), get_json_object(value#54420, $.results), Some(Etc/UTC)) AS root#54531]
Filter ((size(from_json(ArrayType(StructType(StructField(capacity,LongType,true),StructField(coordonnees_geo,StructType(StructField(lat,DoubleType,true),StructField(lon,DoubleType,true)),true),StructField(name,StringType,true),StructField(station_opening_hours,StringType,true),StructField(stationcode,StringType,true)),true), get_json_object(value#54420, $.results), Some(Etc/UTC)), true) > 0) AND isnotnull(from_json(ArrayType(StructType(StructField(capacity,LongType,true),StructField(coordonnees_geo,StructType(StructField(lat,DoubleType,true),StructField(lon,DoubleType,true)),true),StructField(name,StringType,true),StructField(station_opening_hours,StringType,true),StructField(stationcode,StringType,true)),true), get_json_object(value#54420, $.results), Some(Etc/UTC))))
FileScan text [value#54420] Batched: false, DataFilters: [(size(from_json(ArrayType(StructType(StructField(capacity,LongType,true),StructField(coordonnees..., Format: Text, Location: InMemoryFileIndex(30 paths)[file:/data/input/depot/json/tmp/INFORMATION_STA_119302174/HTTP_FILE_0..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<value:string>
== Physical Plan ==
AdaptiveSparkPlan (47)
+- == Final Plan ==
* HashAggregate (29)
+- ShuffleQueryStage (28), Statistics(sizeInBytes=104.0 B, rowCount=1)
+- Exchange (27)
+- * HashAggregate (26)
+- * Project (25)
+- * SortMergeJoin Inner (24)
:- * Sort (8)
: +- AQEShuffleRead (7)
: +- ShuffleQueryStage (6), Statistics(sizeInBytes=21.9 KiB, rowCount=701)
: +- Exchange (5)
: +- Project (4)
: +- Filter (3)
: +- * ColumnarToRow (2)
: +- Scan parquet (1)
+- * Sort (23)
+- AQEShuffleRead (22)
+- ShuffleQueryStage (21), Statistics(sizeInBytes=47.0 KiB, rowCount=1.51E+3)
+- Exchange (20)
+- * HashAggregate (19)
+- AQEShuffleRead (18)
+- ShuffleQueryStage (17), Statistics(sizeInBytes=184.0 KiB, rowCount=1.51E+3)
+- Exchange (16)
+- * HashAggregate (15)
+- Project (14)
+- * Filter (13)
+- * Generate (12)
+- Project (11)
+- Filter (10)
+- Scan text (9)
+- == Initial Plan ==
HashAggregate (46)
+- Exchange (45)
+- HashAggregate (44)
+- Project (43)
+- SortMergeJoin Inner (42)
:- Sort (33)
: +- Exchange (32)
: +- Project (31)
: +- Filter (30)
: +- Scan parquet (1)
+- Sort (41)
+- Exchange (40)
+- HashAggregate (39)
+- Exchange (38)
+- HashAggregate (37)
+- Project (36)
+- Filter (35)
+- Generate (34)
+- Project (11)
+- Filter (10)
+- Scan text (9)
(1) Scan parquet
Output [1]: [FIELDS_119275#54381]
Batched: true
Location: InMemoryFileIndex [file:/data/output/cache/parquet/uet/VLIB_JSON_119273]
ReadSchema: struct<FIELDS_119275:string>
(2) ColumnarToRow [codegen id : 1]
Input [1]: [FIELDS_119275#54381]
(3) Filter
Input [1]: [FIELDS_119275#54381]
Condition : ((str_remove_accent(upper(str_if_with_rule((CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike)) > 0) END AND CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical)) > 0) END), Mécaniques + Electriques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical)) > 0) END, Mécaniques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike)) > 0) END, Electriques, Pas de disponibilité))))) <=> MECANIQUES + ELECTRIQUES) AND isnotnull(get_json_object(FIELDS_119275#54381, $.stationcode)))
(4) Project
Output [2]: [get_json_object(FIELDS_119275#54381, $.stationcode) AS COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, str_to_integer(get_json_object(FIELDS_119275#54381, $.numbikesavailable)) AS COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533]
Input [1]: [FIELDS_119275#54381]
(5) Exchange
Input [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533]
Arguments: hashpartitioning(COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, 10), ENSURE_REQUIREMENTS, [plan_id=6033]
(6) ShuffleQueryStage
Output [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533]
Arguments: 0
(7) AQEShuffleRead
Input [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533]
Arguments: coalesced
(8) Sort [codegen id : 5]
Input [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533]
Arguments: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520 ASC NULLS FIRST], false, 0
(9) Scan text
Output [1]: [value#54420]
Batched: false
Location: InMemoryFileIndex [file:/data/input/depot/json/tmp/INFORMATION_STA_119302174/HTTP_FILE_0.json, ... 29 entries]
ReadSchema: struct<value:string>
(10) Filter
Input [1]: [value#54420]
Condition : ((size(from_json(ArrayType(StructType(StructField(capacity,LongType,true),StructField(coordonnees_geo,StructType(StructField(lat,DoubleType,true),StructField(lon,DoubleType,true)),true),StructField(name,StringType,true),StructField(station_opening_hours,StringType,true),StructField(stationcode,StringType,true)),true), get_json_object(value#54420, $.results), Some(Etc/UTC)), true) > 0) AND isnotnull(from_json(ArrayType(StructType(StructField(capacity,LongType,true),StructField(coordonnees_geo,StructType(StructField(lat,DoubleType,true),StructField(lon,DoubleType,true)),true),StructField(name,StringType,true),StructField(station_opening_hours,StringType,true),StructField(stationcode,StringType,true)),true), get_json_object(value#54420, $.results), Some(Etc/UTC))))
(11) Project
Output [1]: [from_json(ArrayType(StructType(StructField(capacity,LongType,true),StructField(coordonnees_geo,StructType(StructField(lat,DoubleType,true),StructField(lon,DoubleType,true)),true),StructField(name,StringType,true),StructField(station_opening_hours,StringType,true),StructField(stationcode,StringType,true)),true), get_json_object(value#54420, $.results), Some(Etc/UTC)) AS root#54531]
Input [1]: [value#54420]
(12) Generate [codegen id : 2]
Input [1]: [root#54531]
Arguments: explode(root#54531), false, [root#54554]
(13) Filter [codegen id : 2]
Input [1]: [root#54554]
Condition : (CASE WHEN isnull(bigint_to_int(root#54554.capacity)) THEN false ELSE (bigint_to_int(root#54554.capacity) > 0) END AND isnotnull(root#54554.stationcode))
(14) Project
Output [4]: [root#54554.capacity AS CAPACITY_119304#54599L, to_json(root#54554.coordonnees_geo, Some(Etc/UTC)) AS COORDONNEES_GEO_119305#54600, root#54554.name AS NAME_119306#54601, root#54554.stationcode AS STATIONCODE_119307#54602]
Input [1]: [root#54554]
(15) HashAggregate [codegen id : 3]
Input [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Keys [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Functions: []
Aggregate Attributes: []
Results [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
(16) Exchange
Input [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Arguments: hashpartitioning(CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602, 10), ENSURE_REQUIREMENTS, [plan_id=6091]
(17) ShuffleQueryStage
Output [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Arguments: 1
(18) AQEShuffleRead
Input [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Arguments: coalesced
(19) HashAggregate [codegen id : 4]
Input [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Keys [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Functions: []
Aggregate Attributes: []
Results [2]: [CAPACITY_119304#54599L AS INFORMATION_STA_119303_CAPACITY_119304#55570L, STATIONCODE_119307#54602 AS INFORMATION_STA_119303_STATIONCODE_119307#55573]
(20) Exchange
Input [2]: [INFORMATION_STA_119303_CAPACITY_119304#55570L, INFORMATION_STA_119303_STATIONCODE_119307#55573]
Arguments: hashpartitioning(INFORMATION_STA_119303_STATIONCODE_119307#55573, 10), ENSURE_REQUIREMENTS, [plan_id=6248]
(21) ShuffleQueryStage
Output [2]: [INFORMATION_STA_119303_CAPACITY_119304#55570L, INFORMATION_STA_119303_STATIONCODE_119307#55573]
Arguments: 2
(22) AQEShuffleRead
Input [2]: [INFORMATION_STA_119303_CAPACITY_119304#55570L, INFORMATION_STA_119303_STATIONCODE_119307#55573]
Arguments: coalesced
(23) Sort [codegen id : 6]
Input [2]: [INFORMATION_STA_119303_CAPACITY_119304#55570L, INFORMATION_STA_119303_STATIONCODE_119307#55573]
Arguments: [INFORMATION_STA_119303_STATIONCODE_119307#55573 ASC NULLS FIRST], false, 0
(24) SortMergeJoin [codegen id : 7]
Left keys [1]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520]
Right keys [1]: [INFORMATION_STA_119303_STATIONCODE_119307#55573]
Join type: Inner
Join condition: CASE WHEN isnull(dec_to_int(dec_round(dec_operator(PRODUIT, array(dec_operator(DIVISION, array(COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#55570L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533)))), 100.0)), 2))) THEN false ELSE (dec_to_int(dec_round(dec_operator(PRODUIT, array(dec_operator(DIVISION, array(COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#55570L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533)))), 100.0)), 2)) > 20) END
(25) Project [codegen id : 7]
Output [6]: [dec_to_int(dec_round(dec_operator(PRODUIT, array(dec_operator(DIVISION, array(COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#55570L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533)))), 100.0)), 2)) AS COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459, str_to_integer(str_create(0)) AS COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710, str_to_integer(str_create(100)) AS COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837, str_to_integer(str_create(25)) AS COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015, str_to_integer(str_create(50)) AS COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120, str_to_integer(str_create(75)) AS COL_CA890354_B95E_461B_87B4_7F83650C3820#58200]
Input [4]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533, INFORMATION_STA_119303_CAPACITY_119304#55570L, INFORMATION_STA_119303_STATIONCODE_119307#55573]
(26) HashAggregate [codegen id : 7]
Input [6]: [COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459, COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710, COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837, COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015, COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120, COL_CA890354_B95E_461B_87B4_7F83650C3820#58200]
Keys: []
Functions [6]: [partial_avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710), partial_avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459), partial_avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837), partial_avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015), partial_avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120), partial_avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#58200)]
Aggregate Attributes [12]: [sum#58500, count#58501L, sum#58502, count#58503L, sum#58504, count#58505L, sum#58506, count#58507L, sum#58508, count#58509L, sum#58510, count#58511L]
Results [12]: [sum#58512, count#58513L, sum#58514, count#58515L, sum#58516, count#58517L, sum#58518, count#58519L, sum#58520, count#58521L, sum#58522, count#58523L]
(27) Exchange
Input [12]: [sum#58512, count#58513L, sum#58514, count#58515L, sum#58516, count#58517L, sum#58518, count#58519L, sum#58520, count#58521L, sum#58522, count#58523L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=6535]
(28) ShuffleQueryStage
Output [12]: [sum#58512, count#58513L, sum#58514, count#58515L, sum#58516, count#58517L, sum#58518, count#58519L, sum#58520, count#58521L, sum#58522, count#58523L]
Arguments: 3
(29) HashAggregate [codegen id : 8]
Input [12]: [sum#58512, count#58513L, sum#58514, count#58515L, sum#58516, count#58517L, sum#58518, count#58519L, sum#58520, count#58521L, sum#58522, count#58523L]
Keys: []
Functions [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710), avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459), avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837), avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015), avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120), avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#58200)]
Aggregate Attributes [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710)#58388, avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459)#58390, avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837)#58392, avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015)#58394, avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120)#58396, avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#58200)#58398]
Results [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710)#58388 AS COL_AF54A9F5_CBB6_427F_8667_E83447A8F563#58389, avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459)#58390 AS COL_E6BCD687_4596_4D15_AC59_90CC70C1343C#58391, avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837)#58392 AS COL_87C3F2BB_CE4E_4CDA_AF24_91837AEFBAEE#58393, avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015)#58394 AS COL_0EAD41C8_A8B9_4F0A_B4DC_674252979444#58395, avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120)#58396 AS COL_F0B1090B_BD84_43C1_B441_5177DBAEEEAF#58397, avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#58200)#58398 AS COL_A41EC495_BE1A_414F_B81F_12D4C98892DE#58399]
(30) Filter
Input [1]: [FIELDS_119275#54381]
Condition : ((str_remove_accent(upper(str_if_with_rule((CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike)) > 0) END AND CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical)) > 0) END), Mécaniques + Electriques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.mechanical)) > 0) END, Mécaniques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#54381, $.ebike)) > 0) END, Electriques, Pas de disponibilité))))) <=> MECANIQUES + ELECTRIQUES) AND isnotnull(get_json_object(FIELDS_119275#54381, $.stationcode)))
(31) Project
Output [2]: [get_json_object(FIELDS_119275#54381, $.stationcode) AS COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, str_to_integer(get_json_object(FIELDS_119275#54381, $.numbikesavailable)) AS COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533]
Input [1]: [FIELDS_119275#54381]
(32) Exchange
Input [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533]
Arguments: hashpartitioning(COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, 10), ENSURE_REQUIREMENTS, [plan_id=5907]
(33) Sort
Input [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533]
Arguments: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520 ASC NULLS FIRST], false, 0
(34) Generate
Input [1]: [root#54531]
Arguments: explode(root#54531), false, [root#54554]
(35) Filter
Input [1]: [root#54554]
Condition : (CASE WHEN isnull(bigint_to_int(root#54554.capacity)) THEN false ELSE (bigint_to_int(root#54554.capacity) > 0) END AND isnotnull(root#54554.stationcode))
(36) Project
Output [4]: [root#54554.capacity AS CAPACITY_119304#54599L, to_json(root#54554.coordonnees_geo, Some(Etc/UTC)) AS COORDONNEES_GEO_119305#54600, root#54554.name AS NAME_119306#54601, root#54554.stationcode AS STATIONCODE_119307#54602]
Input [1]: [root#54554]
(37) HashAggregate
Input [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Keys [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Functions: []
Aggregate Attributes: []
Results [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
(38) Exchange
Input [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Arguments: hashpartitioning(CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602, 10), ENSURE_REQUIREMENTS, [plan_id=5871]
(39) HashAggregate
Input [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Keys [4]: [CAPACITY_119304#54599L, COORDONNEES_GEO_119305#54600, NAME_119306#54601, STATIONCODE_119307#54602]
Functions: []
Aggregate Attributes: []
Results [2]: [CAPACITY_119304#54599L AS INFORMATION_STA_119303_CAPACITY_119304#55570L, STATIONCODE_119307#54602 AS INFORMATION_STA_119303_STATIONCODE_119307#55573]
(40) Exchange
Input [2]: [INFORMATION_STA_119303_CAPACITY_119304#55570L, INFORMATION_STA_119303_STATIONCODE_119307#55573]
Arguments: hashpartitioning(INFORMATION_STA_119303_STATIONCODE_119307#55573, 10), ENSURE_REQUIREMENTS, [plan_id=5911]
(41) Sort
Input [2]: [INFORMATION_STA_119303_CAPACITY_119304#55570L, INFORMATION_STA_119303_STATIONCODE_119307#55573]
Arguments: [INFORMATION_STA_119303_STATIONCODE_119307#55573 ASC NULLS FIRST], false, 0
(42) SortMergeJoin
Left keys [1]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520]
Right keys [1]: [INFORMATION_STA_119303_STATIONCODE_119307#55573]
Join type: Inner
Join condition: CASE WHEN isnull(dec_to_int(dec_round(dec_operator(PRODUIT, array(dec_operator(DIVISION, array(COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#55570L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533)))), 100.0)), 2))) THEN false ELSE (dec_to_int(dec_round(dec_operator(PRODUIT, array(dec_operator(DIVISION, array(COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#55570L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533)))), 100.0)), 2)) > 20) END
(43) Project
Output [6]: [dec_to_int(dec_round(dec_operator(PRODUIT, array(dec_operator(DIVISION, array(COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#55570L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533)))), 100.0)), 2)) AS COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459, str_to_integer(str_create(0)) AS COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710, str_to_integer(str_create(100)) AS COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837, str_to_integer(str_create(25)) AS COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015, str_to_integer(str_create(50)) AS COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120, str_to_integer(str_create(75)) AS COL_CA890354_B95E_461B_87B4_7F83650C3820#58200]
Input [4]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#55520, COL_222816E0_1771_4A96_9C59_DB1900C311FE#55533, INFORMATION_STA_119303_CAPACITY_119304#55570L, INFORMATION_STA_119303_STATIONCODE_119307#55573]
(44) HashAggregate
Input [6]: [COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459, COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710, COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837, COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015, COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120, COL_CA890354_B95E_461B_87B4_7F83650C3820#58200]
Keys: []
Functions [6]: [partial_avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710), partial_avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459), partial_avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837), partial_avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015), partial_avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120), partial_avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#58200)]
Aggregate Attributes [12]: [sum#58500, count#58501L, sum#58502, count#58503L, sum#58504, count#58505L, sum#58506, count#58507L, sum#58508, count#58509L, sum#58510, count#58511L]
Results [12]: [sum#58512, count#58513L, sum#58514, count#58515L, sum#58516, count#58517L, sum#58518, count#58519L, sum#58520, count#58521L, sum#58522, count#58523L]
(45) Exchange
Input [12]: [sum#58512, count#58513L, sum#58514, count#58515L, sum#58516, count#58517L, sum#58518, count#58519L, sum#58520, count#58521L, sum#58522, count#58523L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=5927]
(46) HashAggregate
Input [12]: [sum#58512, count#58513L, sum#58514, count#58515L, sum#58516, count#58517L, sum#58518, count#58519L, sum#58520, count#58521L, sum#58522, count#58523L]
Keys: []
Functions [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710), avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459), avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837), avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015), avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120), avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#58200)]
Aggregate Attributes [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710)#58388, avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459)#58390, avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837)#58392, avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015)#58394, avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120)#58396, avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#58200)#58398]
Results [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#57710)#58388 AS COL_AF54A9F5_CBB6_427F_8667_E83447A8F563#58389, avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#57459)#58390 AS COL_E6BCD687_4596_4D15_AC59_90CC70C1343C#58391, avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#57837)#58392 AS COL_87C3F2BB_CE4E_4CDA_AF24_91837AEFBAEE#58393, avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#58015)#58394 AS COL_0EAD41C8_A8B9_4F0A_B4DC_674252979444#58395, avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#58120)#58396 AS COL_F0B1090B_BD84_43C1_B441_5177DBAEEEAF#58397, avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#58200)#58398 AS COL_A41EC495_BE1A_414F_B81F_12D4C98892DE#58399]
(47) AdaptiveSparkPlan
Output [6]: [COL_AF54A9F5_CBB6_427F_8667_E83447A8F563#58389, COL_E6BCD687_4596_4D15_AC59_90CC70C1343C#58391, COL_87C3F2BB_CE4E_4CDA_AF24_91837AEFBAEE#58393, COL_0EAD41C8_A8B9_4F0A_B4DC_674252979444#58395, COL_F0B1090B_BD84_43C1_B441_5177DBAEEEAF#58397, COL_A41EC495_BE1A_414F_B81F_12D4C98892DE#58399]
Arguments: isFinalPlan=true