digraph G {
0 [labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>"];
1 [labelType="html" label="<b>Execute InsertIntoHadoopFsRelationCommand</b><br><br>task commit time: 6 ms<br>number of written files: 1<br>job commit time: 15 ms<br>number of output rows: 700<br>number of dynamic part: 0<br>written output: 35.7 KiB"];
2 [labelType="html" label="<br><b>WriteFiles</b><br><br>"];
subgraph cluster3 {
isCluster="true";
label="WholeStageCodegen (3)\n \nduration: 322 ms";
4 [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: 700<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0"];
}
5 [labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 60.6 KiB<br>number of coalesced partitions: 1"];
6 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 700<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>9 ms (3 ms, 3 ms, 3 ms (stage 3.0: task 12))<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: 700<br>local bytes read: 58.0 KiB<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 3<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size total (min, med, max (stageId: taskId))<br>85.3 KiB (12.1 KiB, 36.4 KiB, 36.8 KiB (stage 3.0: task 11))<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>58.0 KiB (9.0 KiB, 24.3 KiB, 24.7 KiB (stage 3.0: task 11))"];
subgraph cluster7 {
isCluster="true";
label="WholeStageCodegen (2)\n \nduration: total (min, med, max (stageId: taskId))\n207 ms (12 ms, 16 ms, 47 ms (stage 3.0: task 12))";
8 [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>126 ms (5 ms, 8 ms, 36 ms (stage 3.0: task 12))<br>peak memory total (min, med, max (stageId: taskId))<br>2.3 MiB (256.0 KiB, 256.0 KiB, 256.0 KiB (stage 3.0: task 11))<br>number of output rows: 700<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0"];
}
9 [labelType="html" label="<br><b>Project</b><br><br>"];
subgraph cluster10 {
isCluster="true";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n221 ms (14 ms, 19 ms, 47 ms (stage 3.0: task 12))";
11 [labelType="html" label="<b>Generate</b><br><br>number of output rows: 700"];
}
12 [labelType="html" label="<br><b>Project</b><br><br>"];
13 [labelType="html" label="<b>Filter</b><br><br>number of output rows: 7"];
14 [labelType="html" label="<b>Scan text </b><br><br>number of output rows: 30<br>number of files read: 30<br>metadata time: 2 ms<br>size of files read: 160.8 KiB"];
1->0;
2->1;
4->2;
5->4;
6->5;
8->6;
9->8;
11->9;
12->11;
13->12;
14->13;
}
15
AdaptiveSparkPlan isFinalPlan=true
Execute InsertIntoHadoopFsRelationCommand file:/data/output/cache/parquet/uet/INFORMATION_STA_119303, false, Parquet, [path=file:///data/output/cache/parquet/uet/INFORMATION_STA_119303], Overwrite, [CAPACITY_119304, COORDONNEES_GEO_119305, NAME_119306, STATIONCODE_119307]
WriteFiles
HashAggregate(keys=[CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67], functions=[])
WholeStageCodegen (3)
AQEShuffleRead coalesced
Exchange hashpartitioning(CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67, 10), ENSURE_REQUIREMENTS, [plan_id=155]
HashAggregate(keys=[CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67], functions=[])
WholeStageCodegen (2)
Project [root#31.capacity AS CAPACITY_119304#64L, to_json(root#31.coordonnees_geo, Some(Etc/UTC)) AS COORDONNEES_GEO_119305#65, root#31.name AS NAME_119306#66, root#31.stationcode AS STATIONCODE_119307#67]
Generate explode(root#28), false, [root#31]
WholeStageCodegen (1)
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#13, $.results), Some(Etc/UTC)) AS root#28]
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#13, $.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#13, $.results), Some(Etc/UTC))))
FileScan text [value#13] 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_119302146/HTTP_FILE_0..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<value:string>
== Physical Plan ==
AdaptiveSparkPlan (20)
+- == Final Plan ==
Execute InsertIntoHadoopFsRelationCommand (12)
+- WriteFiles (11)
+- * HashAggregate (10)
+- AQEShuffleRead (9)
+- ShuffleQueryStage (8), Statistics(sizeInBytes=85.3 KiB, rowCount=700)
+- Exchange (7)
+- * HashAggregate (6)
+- Project (5)
+- * Generate (4)
+- Project (3)
+- Filter (2)
+- Scan text (1)
+- == Initial Plan ==
Execute InsertIntoHadoopFsRelationCommand (19)
+- WriteFiles (18)
+- HashAggregate (17)
+- Exchange (16)
+- HashAggregate (15)
+- Project (14)
+- Generate (13)
+- Project (3)
+- Filter (2)
+- Scan text (1)
(1) Scan text
Output [1]: [value#13]
Batched: false
Location: InMemoryFileIndex [file:/data/input/depot/json/tmp/INFORMATION_STA_119302146/HTTP_FILE_0.json, ... 29 entries]
ReadSchema: struct<value:string>
(2) Filter
Input [1]: [value#13]
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#13, $.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#13, $.results), Some(Etc/UTC))))
(3) 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#13, $.results), Some(Etc/UTC)) AS root#28]
Input [1]: [value#13]
(4) Generate [codegen id : 1]
Input [1]: [root#28]
Arguments: explode(root#28), false, [root#31]
(5) Project
Output [4]: [root#31.capacity AS CAPACITY_119304#64L, to_json(root#31.coordonnees_geo, Some(Etc/UTC)) AS COORDONNEES_GEO_119305#65, root#31.name AS NAME_119306#66, root#31.stationcode AS STATIONCODE_119307#67]
Input [1]: [root#31]
(6) HashAggregate [codegen id : 2]
Input [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Keys [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Functions: []
Aggregate Attributes: []
Results [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
(7) Exchange
Input [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Arguments: hashpartitioning(CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67, 10), ENSURE_REQUIREMENTS, [plan_id=155]
(8) ShuffleQueryStage
Output [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Arguments: 0
(9) AQEShuffleRead
Input [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Arguments: coalesced
(10) HashAggregate [codegen id : 3]
Input [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Keys [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Functions: []
Aggregate Attributes: []
Results [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
(11) WriteFiles
Input [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
(12) Execute InsertIntoHadoopFsRelationCommand
Input: []
Arguments: file:/data/output/cache/parquet/uet/INFORMATION_STA_119303, false, Parquet, [path=file:///data/output/cache/parquet/uet/INFORMATION_STA_119303], Overwrite, [CAPACITY_119304, COORDONNEES_GEO_119305, NAME_119306, STATIONCODE_119307]
(13) Generate
Input [1]: [root#28]
Arguments: explode(root#28), false, [root#31]
(14) Project
Output [4]: [root#31.capacity AS CAPACITY_119304#64L, to_json(root#31.coordonnees_geo, Some(Etc/UTC)) AS COORDONNEES_GEO_119305#65, root#31.name AS NAME_119306#66, root#31.stationcode AS STATIONCODE_119307#67]
Input [1]: [root#31]
(15) HashAggregate
Input [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Keys [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Functions: []
Aggregate Attributes: []
Results [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
(16) Exchange
Input [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Arguments: hashpartitioning(CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67, 10), ENSURE_REQUIREMENTS, [plan_id=131]
(17) HashAggregate
Input [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Keys [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
Functions: []
Aggregate Attributes: []
Results [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
(18) WriteFiles
Input [4]: [CAPACITY_119304#64L, COORDONNEES_GEO_119305#65, NAME_119306#66, STATIONCODE_119307#67]
(19) Execute InsertIntoHadoopFsRelationCommand
Input: []
Arguments: file:/data/output/cache/parquet/uet/INFORMATION_STA_119303, false, Parquet, [path=file:///data/output/cache/parquet/uet/INFORMATION_STA_119303], Overwrite, [CAPACITY_119304, COORDONNEES_GEO_119305, NAME_119306, STATIONCODE_119307]
(20) AdaptiveSparkPlan
Output: []
Arguments: isFinalPlan=true