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: 39 ms";
5 [labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 38 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: 195 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: 1 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: 202 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: 1 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: 103 ms";
22 [labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 6 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>14 ms (1 ms, 2 ms, 3 ms (stage 928.0: task 1271))<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 928.0: task 1266))<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 928.0: task 1266))"];
subgraph cluster25 {
isCluster="true";
label="WholeStageCodegen (3)\n \nduration: total (min, med, max (stageId: taskId))\n598 ms (52 ms, 66 ms, 82 ms (stage 928.0: task 1267))";
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>169 ms (7 ms, 19 ms, 32 ms (stage 928.0: task 1269))<br>peak memory total (min, med, max (stageId: taskId))<br>2.3 MiB (256.0 KiB, 256.0 KiB, 256.0 KiB (stage 928.0: task 1274))<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))\n1.0 s (102 ms, 113 ms, 129 ms (stage 928.0: task 1267))";
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#149694), avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541), avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770), avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870), avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930), avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#150010)])
WholeStageCodegen (8)
Exchange SinglePartition, ENSURE_REQUIREMENTS, [plan_id=16043]
HashAggregate(keys=[], functions=[partial_avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694), partial_avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541), partial_avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770), partial_avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870), partial_avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930), partial_avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#150010)])
Project [dec_to_int(dec_round(dec_operator(PRODUIT, array(dec_operator(DIVISION, array(COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#148387L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358)))), 100.0)), 2)) AS COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541, str_to_integer(str_create(0)) AS COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694, str_to_integer(str_create(100)) AS COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770, str_to_integer(str_create(25)) AS COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870, str_to_integer(str_create(50)) AS COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930, str_to_integer(str_create(75)) AS COL_CA890354_B95E_461B_87B4_7F83650C3820#150010]
SortMergeJoin [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345], [INFORMATION_STA_119303_STATIONCODE_119307#148390], Inner, CASE WHEN isnull(dec_to_int(dec_round(dec_operator(PRODUIT, array(dec_operator(DIVISION, array(COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#148387L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358)))), 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#148358, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#148387L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358)))), 100.0)), 2)) > 20) END
WholeStageCodegen (7)
Sort [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345 ASC NULLS FIRST], false, 0
WholeStageCodegen (5)
AQEShuffleRead coalesced
Exchange hashpartitioning(COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, 10), ENSURE_REQUIREMENTS, [plan_id=15402]
Project [get_json_object(FIELDS_119275#147961, $.stationcode) AS COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, str_to_integer(get_json_object(FIELDS_119275#147961, $.numbikesavailable)) AS COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358]
Filter ((str_remove_accent(upper(str_if_with_rule((CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike)) > 0) END AND CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical)) > 0) END), Mécaniques + Electriques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical)) > 0) END, Mécaniques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike)) > 0) END, Electriques, Pas de disponibilité))))) <=> MECANIQUES + ELECTRIQUES) AND isnotnull(get_json_object(FIELDS_119275#147961, $.stationcode)))
ColumnarToRow
WholeStageCodegen (1)
FileScan parquet [FIELDS_119275#147961] 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#148390 ASC NULLS FIRST], false, 0
WholeStageCodegen (6)
AQEShuffleRead coalesced
Exchange hashpartitioning(INFORMATION_STA_119303_STATIONCODE_119307#148390, 10), ENSURE_REQUIREMENTS, [plan_id=15772]
HashAggregate(keys=[CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044], functions=[])
WholeStageCodegen (4)
AQEShuffleRead coalesced
Exchange hashpartitioning(CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044, 10), ENSURE_REQUIREMENTS, [plan_id=15422]
HashAggregate(keys=[CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044], functions=[])
WholeStageCodegen (3)
Project [root#148008.capacity AS CAPACITY_119304#148041L, to_json(root#148008.coordonnees_geo, Some(Etc/UTC)) AS COORDONNEES_GEO_119305#148042, root#148008.name AS NAME_119306#148043, root#148008.stationcode AS STATIONCODE_119307#148044]
Filter (CASE WHEN isnull(bigint_to_int(root#148008.capacity)) THEN false ELSE (bigint_to_int(root#148008.capacity) > 0) END AND isnotnull(root#148008.stationcode))
Generate explode(root#148005), false, [root#148008]
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#147990, $.results), Some(Etc/UTC)) AS root#148005]
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#147990, $.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#147990, $.results), Some(Etc/UTC))))
FileScan text [value#147990] 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_119302172/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#147961]
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#147961]
(3) Filter
Input [1]: [FIELDS_119275#147961]
Condition : ((str_remove_accent(upper(str_if_with_rule((CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike)) > 0) END AND CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical)) > 0) END), Mécaniques + Electriques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical)) > 0) END, Mécaniques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike)) > 0) END, Electriques, Pas de disponibilité))))) <=> MECANIQUES + ELECTRIQUES) AND isnotnull(get_json_object(FIELDS_119275#147961, $.stationcode)))
(4) Project
Output [2]: [get_json_object(FIELDS_119275#147961, $.stationcode) AS COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, str_to_integer(get_json_object(FIELDS_119275#147961, $.numbikesavailable)) AS COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358]
Input [1]: [FIELDS_119275#147961]
(5) Exchange
Input [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358]
Arguments: hashpartitioning(COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, 10), ENSURE_REQUIREMENTS, [plan_id=15402]
(6) ShuffleQueryStage
Output [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358]
Arguments: 0
(7) AQEShuffleRead
Input [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358]
Arguments: coalesced
(8) Sort [codegen id : 5]
Input [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358]
Arguments: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345 ASC NULLS FIRST], false, 0
(9) Scan text
Output [1]: [value#147990]
Batched: false
Location: InMemoryFileIndex [file:/data/input/depot/json/tmp/INFORMATION_STA_119302172/HTTP_FILE_0.json, ... 29 entries]
ReadSchema: struct<value:string>
(10) Filter
Input [1]: [value#147990]
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#147990, $.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#147990, $.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#147990, $.results), Some(Etc/UTC)) AS root#148005]
Input [1]: [value#147990]
(12) Generate [codegen id : 2]
Input [1]: [root#148005]
Arguments: explode(root#148005), false, [root#148008]
(13) Filter [codegen id : 2]
Input [1]: [root#148008]
Condition : (CASE WHEN isnull(bigint_to_int(root#148008.capacity)) THEN false ELSE (bigint_to_int(root#148008.capacity) > 0) END AND isnotnull(root#148008.stationcode))
(14) Project
Output [4]: [root#148008.capacity AS CAPACITY_119304#148041L, to_json(root#148008.coordonnees_geo, Some(Etc/UTC)) AS COORDONNEES_GEO_119305#148042, root#148008.name AS NAME_119306#148043, root#148008.stationcode AS STATIONCODE_119307#148044]
Input [1]: [root#148008]
(15) HashAggregate [codegen id : 3]
Input [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Keys [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Functions: []
Aggregate Attributes: []
Results [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
(16) Exchange
Input [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Arguments: hashpartitioning(CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044, 10), ENSURE_REQUIREMENTS, [plan_id=15422]
(17) ShuffleQueryStage
Output [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Arguments: 1
(18) AQEShuffleRead
Input [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Arguments: coalesced
(19) HashAggregate [codegen id : 4]
Input [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Keys [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Functions: []
Aggregate Attributes: []
Results [2]: [CAPACITY_119304#148041L AS INFORMATION_STA_119303_CAPACITY_119304#148387L, STATIONCODE_119307#148044 AS INFORMATION_STA_119303_STATIONCODE_119307#148390]
(20) Exchange
Input [2]: [INFORMATION_STA_119303_CAPACITY_119304#148387L, INFORMATION_STA_119303_STATIONCODE_119307#148390]
Arguments: hashpartitioning(INFORMATION_STA_119303_STATIONCODE_119307#148390, 10), ENSURE_REQUIREMENTS, [plan_id=15772]
(21) ShuffleQueryStage
Output [2]: [INFORMATION_STA_119303_CAPACITY_119304#148387L, INFORMATION_STA_119303_STATIONCODE_119307#148390]
Arguments: 2
(22) AQEShuffleRead
Input [2]: [INFORMATION_STA_119303_CAPACITY_119304#148387L, INFORMATION_STA_119303_STATIONCODE_119307#148390]
Arguments: coalesced
(23) Sort [codegen id : 6]
Input [2]: [INFORMATION_STA_119303_CAPACITY_119304#148387L, INFORMATION_STA_119303_STATIONCODE_119307#148390]
Arguments: [INFORMATION_STA_119303_STATIONCODE_119307#148390 ASC NULLS FIRST], false, 0
(24) SortMergeJoin [codegen id : 7]
Left keys [1]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345]
Right keys [1]: [INFORMATION_STA_119303_STATIONCODE_119307#148390]
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#148358, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#148387L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358)))), 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#148358, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#148387L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358)))), 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#148358, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#148387L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358)))), 100.0)), 2)) AS COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541, str_to_integer(str_create(0)) AS COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694, str_to_integer(str_create(100)) AS COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770, str_to_integer(str_create(25)) AS COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870, str_to_integer(str_create(50)) AS COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930, str_to_integer(str_create(75)) AS COL_CA890354_B95E_461B_87B4_7F83650C3820#150010]
Input [4]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358, INFORMATION_STA_119303_CAPACITY_119304#148387L, INFORMATION_STA_119303_STATIONCODE_119307#148390]
(26) HashAggregate [codegen id : 7]
Input [6]: [COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541, COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694, COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770, COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870, COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930, COL_CA890354_B95E_461B_87B4_7F83650C3820#150010]
Keys: []
Functions [6]: [partial_avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694), partial_avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541), partial_avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770), partial_avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870), partial_avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930), partial_avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#150010)]
Aggregate Attributes [12]: [sum#151453, count#151454L, sum#151455, count#151456L, sum#151457, count#151458L, sum#151459, count#151460L, sum#151461, count#151462L, sum#151463, count#151464L]
Results [12]: [sum#151465, count#151466L, sum#151467, count#151468L, sum#151469, count#151470L, sum#151471, count#151472L, sum#151473, count#151474L, sum#151475, count#151476L]
(27) Exchange
Input [12]: [sum#151465, count#151466L, sum#151467, count#151468L, sum#151469, count#151470L, sum#151471, count#151472L, sum#151473, count#151474L, sum#151475, count#151476L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=16043]
(28) ShuffleQueryStage
Output [12]: [sum#151465, count#151466L, sum#151467, count#151468L, sum#151469, count#151470L, sum#151471, count#151472L, sum#151473, count#151474L, sum#151475, count#151476L]
Arguments: 3
(29) HashAggregate [codegen id : 8]
Input [12]: [sum#151465, count#151466L, sum#151467, count#151468L, sum#151469, count#151470L, sum#151471, count#151472L, sum#151473, count#151474L, sum#151475, count#151476L]
Keys: []
Functions [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694), avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541), avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770), avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870), avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930), avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#150010)]
Aggregate Attributes [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694)#150232, avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541)#150234, avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770)#150236, avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870)#150238, avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930)#150240, avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#150010)#150242]
Results [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694)#150232 AS COL_AF54A9F5_CBB6_427F_8667_E83447A8F563#150233, avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541)#150234 AS COL_E6BCD687_4596_4D15_AC59_90CC70C1343C#150235, avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770)#150236 AS COL_87C3F2BB_CE4E_4CDA_AF24_91837AEFBAEE#150237, avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870)#150238 AS COL_0EAD41C8_A8B9_4F0A_B4DC_674252979444#150239, avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930)#150240 AS COL_F0B1090B_BD84_43C1_B441_5177DBAEEEAF#150241, avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#150010)#150242 AS COL_A41EC495_BE1A_414F_B81F_12D4C98892DE#150243]
(30) Filter
Input [1]: [FIELDS_119275#147961]
Condition : ((str_remove_accent(upper(str_if_with_rule((CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike)) > 0) END AND CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical)) > 0) END), Mécaniques + Electriques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.mechanical)) > 0) END, Mécaniques, str_if_with_rule(CASE WHEN isnull(str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike))) THEN false ELSE (str_to_integer(get_json_object(FIELDS_119275#147961, $.ebike)) > 0) END, Electriques, Pas de disponibilité))))) <=> MECANIQUES + ELECTRIQUES) AND isnotnull(get_json_object(FIELDS_119275#147961, $.stationcode)))
(31) Project
Output [2]: [get_json_object(FIELDS_119275#147961, $.stationcode) AS COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, str_to_integer(get_json_object(FIELDS_119275#147961, $.numbikesavailable)) AS COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358]
Input [1]: [FIELDS_119275#147961]
(32) Exchange
Input [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358]
Arguments: hashpartitioning(COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, 10), ENSURE_REQUIREMENTS, [plan_id=15346]
(33) Sort
Input [2]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358]
Arguments: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345 ASC NULLS FIRST], false, 0
(34) Generate
Input [1]: [root#148005]
Arguments: explode(root#148005), false, [root#148008]
(35) Filter
Input [1]: [root#148008]
Condition : (CASE WHEN isnull(bigint_to_int(root#148008.capacity)) THEN false ELSE (bigint_to_int(root#148008.capacity) > 0) END AND isnotnull(root#148008.stationcode))
(36) Project
Output [4]: [root#148008.capacity AS CAPACITY_119304#148041L, to_json(root#148008.coordonnees_geo, Some(Etc/UTC)) AS COORDONNEES_GEO_119305#148042, root#148008.name AS NAME_119306#148043, root#148008.stationcode AS STATIONCODE_119307#148044]
Input [1]: [root#148008]
(37) HashAggregate
Input [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Keys [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Functions: []
Aggregate Attributes: []
Results [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
(38) Exchange
Input [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Arguments: hashpartitioning(CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044, 10), ENSURE_REQUIREMENTS, [plan_id=15340]
(39) HashAggregate
Input [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Keys [4]: [CAPACITY_119304#148041L, COORDONNEES_GEO_119305#148042, NAME_119306#148043, STATIONCODE_119307#148044]
Functions: []
Aggregate Attributes: []
Results [2]: [CAPACITY_119304#148041L AS INFORMATION_STA_119303_CAPACITY_119304#148387L, STATIONCODE_119307#148044 AS INFORMATION_STA_119303_STATIONCODE_119307#148390]
(40) Exchange
Input [2]: [INFORMATION_STA_119303_CAPACITY_119304#148387L, INFORMATION_STA_119303_STATIONCODE_119307#148390]
Arguments: hashpartitioning(INFORMATION_STA_119303_STATIONCODE_119307#148390, 10), ENSURE_REQUIREMENTS, [plan_id=15347]
(41) Sort
Input [2]: [INFORMATION_STA_119303_CAPACITY_119304#148387L, INFORMATION_STA_119303_STATIONCODE_119307#148390]
Arguments: [INFORMATION_STA_119303_STATIONCODE_119307#148390 ASC NULLS FIRST], false, 0
(42) SortMergeJoin
Left keys [1]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345]
Right keys [1]: [INFORMATION_STA_119303_STATIONCODE_119307#148390]
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#148358, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#148387L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358)))), 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#148358, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#148387L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358)))), 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#148358, int_sum(array(bigint_to_int(INFORMATION_STA_119303_CAPACITY_119304#148387L), COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358)))), 100.0)), 2)) AS COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541, str_to_integer(str_create(0)) AS COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694, str_to_integer(str_create(100)) AS COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770, str_to_integer(str_create(25)) AS COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870, str_to_integer(str_create(50)) AS COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930, str_to_integer(str_create(75)) AS COL_CA890354_B95E_461B_87B4_7F83650C3820#150010]
Input [4]: [COL_613DB6B3_74E6_4C99_93FD_E5777B617C86#148345, COL_222816E0_1771_4A96_9C59_DB1900C311FE#148358, INFORMATION_STA_119303_CAPACITY_119304#148387L, INFORMATION_STA_119303_STATIONCODE_119307#148390]
(44) HashAggregate
Input [6]: [COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541, COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694, COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770, COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870, COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930, COL_CA890354_B95E_461B_87B4_7F83650C3820#150010]
Keys: []
Functions [6]: [partial_avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694), partial_avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541), partial_avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770), partial_avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870), partial_avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930), partial_avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#150010)]
Aggregate Attributes [12]: [sum#151453, count#151454L, sum#151455, count#151456L, sum#151457, count#151458L, sum#151459, count#151460L, sum#151461, count#151462L, sum#151463, count#151464L]
Results [12]: [sum#151465, count#151466L, sum#151467, count#151468L, sum#151469, count#151470L, sum#151471, count#151472L, sum#151473, count#151474L, sum#151475, count#151476L]
(45) Exchange
Input [12]: [sum#151465, count#151466L, sum#151467, count#151468L, sum#151469, count#151470L, sum#151471, count#151472L, sum#151473, count#151474L, sum#151475, count#151476L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=15354]
(46) HashAggregate
Input [12]: [sum#151465, count#151466L, sum#151467, count#151468L, sum#151469, count#151470L, sum#151471, count#151472L, sum#151473, count#151474L, sum#151475, count#151476L]
Keys: []
Functions [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694), avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541), avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770), avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870), avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930), avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#150010)]
Aggregate Attributes [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694)#150232, avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541)#150234, avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770)#150236, avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870)#150238, avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930)#150240, avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#150010)#150242]
Results [6]: [avg(COL_60710BBB_84E6_4D82_BF64_43AD7277D805#149694)#150232 AS COL_AF54A9F5_CBB6_427F_8667_E83447A8F563#150233, avg(COL_72171A9C_F337_4AD3_8511_8797B9778C04#149541)#150234 AS COL_E6BCD687_4596_4D15_AC59_90CC70C1343C#150235, avg(COL_CED3F36A_E724_46B8_A288_EEE4FE1ED252#149770)#150236 AS COL_87C3F2BB_CE4E_4CDA_AF24_91837AEFBAEE#150237, avg(COL_51C8BEA6_620D_446F_8AB6_19853E93FD0E#149870)#150238 AS COL_0EAD41C8_A8B9_4F0A_B4DC_674252979444#150239, avg(COL_97F2AE14_003B_420E_B9D6_E6D0C34DCE18#149930)#150240 AS COL_F0B1090B_BD84_43C1_B441_5177DBAEEEAF#150241, avg(COL_CA890354_B95E_461B_87B4_7F83650C3820#150010)#150242 AS COL_A41EC495_BE1A_414F_B81F_12D4C98892DE#150243]
(47) AdaptiveSparkPlan
Output [6]: [COL_AF54A9F5_CBB6_427F_8667_E83447A8F563#150233, COL_E6BCD687_4596_4D15_AC59_90CC70C1343C#150235, COL_87C3F2BB_CE4E_4CDA_AF24_91837AEFBAEE#150237, COL_0EAD41C8_A8B9_4F0A_B4DC_674252979444#150239, COL_F0B1090B_BD84_43C1_B441_5177DBAEEEAF#150241, COL_A41EC495_BE1A_414F_B81F_12D4C98892DE#150243]
Arguments: isFinalPlan=true