digraph G {
0 [labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>"];
subgraph cluster1 {
isCluster="true";
label="WholeStageCodegen (3)\n \nduration: 11 ms";
2 [labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 32.1 MiB<br>spill size: 0.0 B"];
}
3 [labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 212.0 B<br>number of coalesced partitions: 1"];
4 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 2<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 114.0: task 112))<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: 2<br>local bytes read: 211.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 total (min, med, max (stageId: taskId))<br>128.0 B (0.0 B, 128.0 B, 128.0 B (stage 114.0: task 112))<br>local merged bytes read: 0.0 B<br>number of partitions: 2<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>211.0 B (0.0 B, 211.0 B, 211.0 B (stage 114.0: task 112))"];
subgraph cluster5 {
isCluster="true";
label="WholeStageCodegen (2)\n \nduration: total (min, med, max (stageId: taskId))\n19 ms (0 ms, 4 ms, 15 ms (stage 112.0: task 111))";
6 [labelType="html" label="<b>HashAggregate</b><br><br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 117.0: task 113))<br>time in aggregation build total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 117.0: task 113))<br>peak memory total (min, med, max (stageId: taskId))<br>64.5 MiB (0.0 B, 32.2 MiB, 32.2 MiB (stage 112.0: task 111))<br>number of output rows: 4<br>number of sort fallback tasks: 0<br>avg hash probes per key (min, med, max (stageId: taskId)):<br>(1, 1, 1 (stage 112.0: task 111))"];
}
7 [labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 318.0 B<br>number of coalesced partitions: 1"];
8 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 3<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>9 ms (0 ms, 0 ms, 5 ms (stage 110.0: task 109))<br>remote merged bytes read total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 117.0: task 113))<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>remote merged reqs duration total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 117.0: task 113))<br>remote merged blocks fetched: 0<br>records read: 6<br>local bytes read total (min, med, max (stageId: taskId))<br>636.0 B (0.0 B, 318.0 B, 318.0 B (stage 112.0: task 111))<br>fetch wait time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 117.0: task 113))<br>remote bytes read total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 117.0: task 113))<br>merged fetch fallback count: 0<br>local blocks read: 4<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size total (min, med, max (stageId: taskId))<br>192.0 B (0.0 B, 0.0 B, 128.0 B (stage 110.0: task 110))<br>local merged bytes read total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 117.0: task 113))<br>number of partitions: 200<br>remote reqs duration total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 117.0: task 113))<br>remote bytes read to disk total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 117.0: task 113))<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>318.0 B (0.0 B, 0.0 B, 212.0 B (stage 110.0: task 110))"];
subgraph cluster9 {
isCluster="true";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n252 ms (0 ms, 0 ms, 134 ms (stage 110.0: task 109))";
10 [labelType="html" label="<b>HashAggregate</b><br><br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 110.0: task 110))<br>time in aggregation build total (min, med, max (stageId: taskId))<br>204 ms (0 ms, 0 ms, 107 ms (stage 110.0: task 109))<br>peak memory total (min, med, max (stageId: taskId))<br>512.0 KiB (0.0 B, 0.0 B, 256.0 KiB (stage 110.0: task 110))<br>number of output rows: 3<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0"];
}
11 [labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 1,219,444"];
subgraph cluster12 {
isCluster="true";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n0 ms (0 ms, 0 ms, 0 ms (stage 110.0: task 110))";
13 [labelType="html" label="<br><b>Project</b><br><br>"];
}
14 [labelType="html" label="<b>Scan csv </b><br><br>number of output rows: 0"];
2->0;
3->2;
4->3;
6->4;
7->6;
8->7;
10->8;
11->10;
13->11;
14->13;
}
15
AdaptiveSparkPlan isFinalPlan=true
Sort [_source_file#11500 ASC NULLS FIRST], true, 0
WholeStageCodegen (3)
AQEShuffleRead coalesced
Exchange rangepartitioning(_source_file#11500 ASC NULLS FIRST, 200), ENSURE_REQUIREMENTS, [plan_id=2752]
HashAggregate(keys=[_source_file#11500], functions=[count(1)])
WholeStageCodegen (2)
AQEShuffleRead coalesced
Exchange hashpartitioning(_source_file#11500, 200), ENSURE_REQUIREMENTS, [plan_id=2726]
HashAggregate(keys=[_source_file#11500], functions=[partial_count(1)])
WholeStageCodegen (1)
InMemoryTableScan [_source_file#11500]
Project [ride_id#128, rideable_type#129, started_at#130, ended_at#131, start_station_name#132, start_station_id#133, end_station_name#134, end_station_id#135, start_lat#136, start_lng#137, end_lat#138, end_lng#139, member_casual#140, _corrupt_record#141, regexp_extract(input_file_name(), [^/]+$, 0) AS _source_file#156]
WholeStageCodegen (1)
FileScan csv [ride_id#128,rideable_type#129,started_at#130,ended_at#131,start_station_name#132,start_station_id#133,end_station_name#134,end_station_id#135,start_lat#136,start_lng#137,end_lat#138,end_lng#139,member_casual#140,_corrupt_record#141] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(2 paths)[s3a://rzvde-g11-durnev-pavel/raw/citibike_data/202602/202602-citibike-..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<ride_id:string,rideable_type:string,started_at:string,ended_at:string,start_station_name:s...
== Physical Plan ==
AdaptiveSparkPlan (20)
+- == Final Plan ==
* Sort (14)
+- AQEShuffleRead (13)
+- ShuffleQueryStage (12), Statistics(sizeInBytes=128.0 B, rowCount=2)
+- Exchange (11)
+- * HashAggregate (10)
+- AQEShuffleRead (9)
+- ShuffleQueryStage (8), Statistics(sizeInBytes=192.0 B, rowCount=3)
+- Exchange (7)
+- * HashAggregate (6)
+- TableCacheQueryStage (5), Statistics(sizeInBytes=322.0 MiB, rowCount=1.22E+6)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- * Project (4)
+- Scan csv (3)
+- == Initial Plan ==
Sort (19)
+- Exchange (18)
+- HashAggregate (17)
+- Exchange (16)
+- HashAggregate (15)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- * Project (4)
+- Scan csv (3)
(1) InMemoryTableScan
Output [1]: [_source_file#11500]
Arguments: [_source_file#11500]
(2) InMemoryRelation
Arguments: [ride_id#11472, rideable_type#11473, started_at#11474, ended_at#11475, start_station_name#11476, start_station_id#11477, end_station_name#11478, end_station_id#11479, start_lat#11480, start_lng#11481, end_lat#11482, end_lng#11483, member_casual#11484, _corrupt_record#11485, _source_file#11500], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@28f1e8bc,StorageLevel(disk, memory, deserialized, 1 replicas),*(1) Project [ride_id#128, rideable_type#129, started_at#130, ended_at#131, start_station_name#132, start_station_id#133, end_station_name#134, end_station_id#135, start_lat#136, start_lng#137, end_lat#138, end_lng#139, member_casual#140, _corrupt_record#141, regexp_extract(input_file_name(), [^/]+$, 0) AS _source_file#156]
+- FileScan csv [ride_id#128,rideable_type#129,started_at#130,ended_at#131,start_station_name#132,start_station_id#133,end_station_name#134,end_station_id#135,start_lat#136,start_lng#137,end_lat#138,end_lng#139,member_casual#140,_corrupt_record#141] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(2 paths)[s3a://rzvde-g11-durnev-pavel/raw/citibike_data/202602/202602-citibike-..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<ride_id:string,rideable_type:string,started_at:string,ended_at:string,start_station_name:s...
,None)
(3) Scan csv
Output [14]: [ride_id#128, rideable_type#129, started_at#130, ended_at#131, start_station_name#132, start_station_id#133, end_station_name#134, end_station_id#135, start_lat#136, start_lng#137, end_lat#138, end_lng#139, member_casual#140, _corrupt_record#141]
Batched: false
Location: InMemoryFileIndex [s3a://rzvde-g11-durnev-pavel/raw/citibike_data/202602/202602-citibike-tripdata-part00.csv, ... 1 entries]
ReadSchema: struct<ride_id:string,rideable_type:string,started_at:string,ended_at:string,start_station_name:string,start_station_id:string,end_station_name:string,end_station_id:string,start_lat:string,start_lng:string,end_lat:string,end_lng:string,member_casual:string,_corrupt_record:string>
(4) Project [codegen id : 1]
Output [15]: [ride_id#128, rideable_type#129, started_at#130, ended_at#131, start_station_name#132, start_station_id#133, end_station_name#134, end_station_id#135, start_lat#136, start_lng#137, end_lat#138, end_lng#139, member_casual#140, _corrupt_record#141, regexp_extract(input_file_name(), [^/]+$, 0) AS _source_file#156]
Input [14]: [ride_id#128, rideable_type#129, started_at#130, ended_at#131, start_station_name#132, start_station_id#133, end_station_name#134, end_station_id#135, start_lat#136, start_lng#137, end_lat#138, end_lng#139, member_casual#140, _corrupt_record#141]
(5) TableCacheQueryStage
Output [1]: [_source_file#11500]
Arguments: 0
(6) HashAggregate [codegen id : 1]
Input [1]: [_source_file#11500]
Keys [1]: [_source_file#11500]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#12456L]
Results [2]: [_source_file#11500, count#12457L]
(7) Exchange
Input [2]: [_source_file#11500, count#12457L]
Arguments: hashpartitioning(_source_file#11500, 200), ENSURE_REQUIREMENTS, [plan_id=2726]
(8) ShuffleQueryStage
Output [2]: [_source_file#11500, count#12457L]
Arguments: 1
(9) AQEShuffleRead
Input [2]: [_source_file#11500, count#12457L]
Arguments: coalesced
(10) HashAggregate [codegen id : 2]
Input [2]: [_source_file#11500, count#12457L]
Keys [1]: [_source_file#11500]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#12227L]
Results [2]: [_source_file#11500, count(1)#12227L AS count#12228L]
(11) Exchange
Input [2]: [_source_file#11500, count#12228L]
Arguments: rangepartitioning(_source_file#11500 ASC NULLS FIRST, 200), ENSURE_REQUIREMENTS, [plan_id=2752]
(12) ShuffleQueryStage
Output [2]: [_source_file#11500, count#12228L]
Arguments: 2
(13) AQEShuffleRead
Input [2]: [_source_file#11500, count#12228L]
Arguments: coalesced
(14) Sort [codegen id : 3]
Input [2]: [_source_file#11500, count#12228L]
Arguments: [_source_file#11500 ASC NULLS FIRST], true, 0
(15) HashAggregate
Input [1]: [_source_file#11500]
Keys [1]: [_source_file#11500]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#12456L]
Results [2]: [_source_file#11500, count#12457L]
(16) Exchange
Input [2]: [_source_file#11500, count#12457L]
Arguments: hashpartitioning(_source_file#11500, 200), ENSURE_REQUIREMENTS, [plan_id=2677]
(17) HashAggregate
Input [2]: [_source_file#11500, count#12457L]
Keys [1]: [_source_file#11500]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#12227L]
Results [2]: [_source_file#11500, count(1)#12227L AS count#12228L]
(18) Exchange
Input [2]: [_source_file#11500, count#12228L]
Arguments: rangepartitioning(_source_file#11500 ASC NULLS FIRST, 200), ENSURE_REQUIREMENTS, [plan_id=2680]
(19) Sort
Input [2]: [_source_file#11500, count#12228L]
Arguments: [_source_file#11500 ASC NULLS FIRST], true, 0
(20) AdaptiveSparkPlan
Output [2]: [_source_file#11500, count#12228L]
Arguments: isFinalPlan=true