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 total (min, med, max (stageId: taskId))<br>20.0 s (2.2 s, 3.3 s, 4.6 s (stage 19.0: task 50))<br>number of written files: 6<br>job commit time: 24.4 s<br>number of output rows: 4,048,163<br>number of dynamic part: 1<br>written output: 191.0 MiB"];
2 [labelType="html" label="<br><b>WriteFiles</b><br><br>"];
subgraph cluster3 {
isCluster="true";
label="WholeStageCodegen (3)\n \nduration: total (min, med, max (stageId: taskId))\n34.0 s (2.2 s, 5.5 s, 8.3 s (stage 19.0: task 49))";
4 [labelType="html" label="<b>Sort</b><br><br>sort time total (min, med, max (stageId: taskId))<br>396 ms (23 ms, 70 ms, 93 ms (stage 19.0: task 49))<br>peak memory total (min, med, max (stageId: taskId))<br>1608.0 MiB (136.0 MiB, 288.0 MiB, 320.0 MiB (stage 19.0: task 49))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 19.0: task 49))"];
5 [labelType="html" label="<br><b>Project</b><br><br>"];
6 [labelType="html" label="<b>Filter</b><br><br>number of output rows: 4,048,163"];
}
7 [labelType="html" label="<b>Window</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 19.0: task 49))"];
subgraph cluster8 {
isCluster="true";
label="WholeStageCodegen (2)\n \nduration: total (min, med, max (stageId: taskId))\n22.2 s (1.3 s, 4.6 s, 4.7 s (stage 19.0: task 51))";
9 [labelType="html" label="<b>Sort</b><br><br>sort time total (min, med, max (stageId: taskId))<br>10.2 s (614 ms, 1.9 s, 2.5 s (stage 19.0: task 51))<br>peak memory total (min, med, max (stageId: taskId))<br>1736.0 MiB (136.0 MiB, 320.0 MiB, 320.0 MiB (stage 19.0: task 49))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 19.0: task 49))"];
}
10 [labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 6<br>partition data size total (min, med, max (stageId: taskId))<br>339.4 MiB (24.2 MiB, 63.5 MiB, 63.8 MiB (driver))<br>number of coalesced partitions: 6"];
11 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 4,230,360<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>1.3 s (0 ms, 75 ms, 245 ms (stage 17.0: task 44))<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 19.0: task 49))<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 19.0: task 49))<br>remote merged blocks fetched: 0<br>records read: 4,230,360<br>local bytes read total (min, med, max (stageId: taskId))<br>323.4 MiB (23.1 MiB, 60.5 MiB, 60.7 MiB (stage 19.0: task 49))<br>fetch wait time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 19.0: task 49))<br>remote bytes read total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 19.0: task 49))<br>merged fetch fallback count: 0<br>local blocks read: 42<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size total (min, med, max (stageId: taskId))<br>1507.1 MiB (0.0 B, 82.1 MiB, 255.1 MiB (stage 17.0: task 44))<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 19.0: task 49))<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 19.0: task 49))<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 19.0: task 49))<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>323.4 MiB (0.0 B, 17.5 MiB, 58.5 MiB (stage 17.0: task 42))"];
subgraph cluster12 {
isCluster="true";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n35.6 s (0 ms, 2.2 s, 6.5 s (stage 17.0: task 44))";
13 [labelType="html" label="<br><b>Project</b><br><br>"];
14 [labelType="html" label="<br><b>Project</b><br><br>"];
}
15 [labelType="html" label="<b>Scan csv </b><br><br>number of output rows: 4,230,360<br>number of files read: 5<br>metadata time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 19.0: task 49))<br>size of files read total (min, med, max (stageId: taskId))<br>760.1 MiB (0.0 B, 0.0 B, 760.1 MiB (driver))"];
1->0;
2->1;
4->2;
5->4;
6->5;
7->6;
9->7;
10->9;
11->10;
13->11;
14->13;
15->14;
}
16
AdaptiveSparkPlan isFinalPlan=true
Execute InsertIntoHadoopFsRelationCommand s3a://rzvde-g12-kryukov-egor/raw_valid/citibike_data, false, [year#161, month#162], Parquet, [partitionOverwriteMode=dynamic, __partition_columns=["year","month"], path=s3a://rzvde-g12-kryukov-egor/raw_valid/citibike_data/], Overwrite, [ride_id, rideable_type, started_at, ended_at, start_station_name, start_station_id, end_station_name, end_station_id, start_lat, start_lng, end_lat, end_lng, member_casual, _source_file, _processed_dttm, _start_station_ride_num, year, month]
WriteFiles
Sort [year#161 ASC NULLS FIRST, month#162 ASC NULLS FIRST], false, 0
Project [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, _source_file#157, 2026-11-06 14:14:53.38 AS _processed_dttm#158, _start_station_ride_num#160, year#161, month#162]
Filter (((isnotnull(is_valid_ride_id#154) AND isnotnull(is_valid_duration#155)) AND isnotnull(is_valid_stations#156)) AND ((is_valid_ride_id#154 AND is_valid_duration#155) AND is_valid_stations#156))
WholeStageCodegen (3)
Window [row_number() windowspecdefinition(start_station_id#22, _w0#163, _w1#164, started_at#72 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS _start_station_ride_num#160], [start_station_id#22, _w0#163, _w1#164], [started_at#72 ASC NULLS FIRST]
Sort [start_station_id#22 ASC NULLS FIRST, _w0#163 ASC NULLS FIRST, _w1#164 ASC NULLS FIRST, started_at#72 ASC NULLS FIRST], false, 0
WholeStageCodegen (2)
AQEShuffleRead coalesced
Exchange hashpartitioning(start_station_id#22, _w0#163, _w1#164, 200), ENSURE_REQUIREMENTS, [plan_id=309]
Project [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, (isnotnull(ride_id#17) AND NOT (trim(ride_id#17, None) = )) AS is_valid_ride_id#154, ((isnotnull(started_at#72) AND isnotnull(ended_at#73)) AND (ended_at#73 > started_at#72)) AS is_valid_duration#155, ((isnotnull(start_station_id#22) AND isnotnull(end_station_id#24)) AND NOT (end_station_id#24 = start_station_id#22)) AS is_valid_stations#156, input_file_name() AS _source_file#157, year(cast(started_at#72 as date)) AS year#161, month(cast(started_at#72 as date)) AS month#162, year(cast(started_at#72 as date)) AS _w0#163, month(cast(started_at#72 as date)) AS _w1#164]
Project [ride_id#17, rideable_type#18, cast(started_at#19 as timestamp) AS started_at#72, cast(ended_at#20 as timestamp) AS ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, cast(start_lat#25 as double) AS start_lat#67, cast(start_lng#26 as double) AS start_lng#68, cast(end_lat#27 as double) AS end_lat#69, cast(end_lng#28 as double) AS end_lng#70, member_casual#29]
WholeStageCodegen (1)
FileScan csv [ride_id#17,rideable_type#18,started_at#19,ended_at#20,start_station_name#21,start_station_id#22,end_station_name#23,end_station_id#24,start_lat#25,start_lng#26,end_lat#27,end_lng#28,member_casual#29] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(5 paths)[s3a://rzvde-g12-kryukov-egor/raw/citibike_data/202405/202405-citibike-..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<ride_id:string,rideable_type:string,started_at:string,ended_at:string,start_station_name:s...
== Physical Plan ==
AdaptiveSparkPlan (24)
+- == Final Plan ==
Execute InsertIntoHadoopFsRelationCommand (13)
+- WriteFiles (12)
+- * Sort (11)
+- * Project (10)
+- * Filter (9)
+- Window (8)
+- * Sort (7)
+- AQEShuffleRead (6)
+- ShuffleQueryStage (5), Statistics(sizeInBytes=1507.1 MiB, rowCount=4.23E+6)
+- Exchange (4)
+- * Project (3)
+- * Project (2)
+- Scan csv (1)
+- == Initial Plan ==
Execute InsertIntoHadoopFsRelationCommand (23)
+- WriteFiles (22)
+- Sort (21)
+- Project (20)
+- Filter (19)
+- Window (18)
+- Sort (17)
+- Exchange (16)
+- Project (15)
+- Project (14)
+- Scan csv (1)
(1) Scan csv
Output [13]: [ride_id#17, rideable_type#18, started_at#19, ended_at#20, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#25, start_lng#26, end_lat#27, end_lng#28, member_casual#29]
Batched: false
Location: InMemoryFileIndex [s3a://rzvde-g12-kryukov-egor/raw/citibike_data/202405/202405-citibike-tripdata-part00.csv, ... 4 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>
(2) Project [codegen id : 1]
Output [13]: [ride_id#17, rideable_type#18, cast(started_at#19 as timestamp) AS started_at#72, cast(ended_at#20 as timestamp) AS ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, cast(start_lat#25 as double) AS start_lat#67, cast(start_lng#26 as double) AS start_lng#68, cast(end_lat#27 as double) AS end_lat#69, cast(end_lng#28 as double) AS end_lng#70, member_casual#29]
Input [13]: [ride_id#17, rideable_type#18, started_at#19, ended_at#20, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#25, start_lng#26, end_lat#27, end_lng#28, member_casual#29]
(3) Project [codegen id : 1]
Output [21]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, (isnotnull(ride_id#17) AND NOT (trim(ride_id#17, None) = )) AS is_valid_ride_id#154, ((isnotnull(started_at#72) AND isnotnull(ended_at#73)) AND (ended_at#73 > started_at#72)) AS is_valid_duration#155, ((isnotnull(start_station_id#22) AND isnotnull(end_station_id#24)) AND NOT (end_station_id#24 = start_station_id#22)) AS is_valid_stations#156, input_file_name() AS _source_file#157, year(cast(started_at#72 as date)) AS year#161, month(cast(started_at#72 as date)) AS month#162, year(cast(started_at#72 as date)) AS _w0#163, month(cast(started_at#72 as date)) AS _w1#164]
Input [13]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29]
(4) Exchange
Input [21]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164]
Arguments: hashpartitioning(start_station_id#22, _w0#163, _w1#164, 200), ENSURE_REQUIREMENTS, [plan_id=309]
(5) ShuffleQueryStage
Output [21]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164]
Arguments: 0
(6) AQEShuffleRead
Input [21]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164]
Arguments: coalesced
(7) Sort [codegen id : 2]
Input [21]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164]
Arguments: [start_station_id#22 ASC NULLS FIRST, _w0#163 ASC NULLS FIRST, _w1#164 ASC NULLS FIRST, started_at#72 ASC NULLS FIRST], false, 0
(8) Window
Input [21]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164]
Arguments: [row_number() windowspecdefinition(start_station_id#22, _w0#163, _w1#164, started_at#72 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS _start_station_ride_num#160], [start_station_id#22, _w0#163, _w1#164], [started_at#72 ASC NULLS FIRST]
(9) Filter [codegen id : 3]
Input [22]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164, _start_station_ride_num#160]
Condition : (((isnotnull(is_valid_ride_id#154) AND isnotnull(is_valid_duration#155)) AND isnotnull(is_valid_stations#156)) AND ((is_valid_ride_id#154 AND is_valid_duration#155) AND is_valid_stations#156))
(10) Project [codegen id : 3]
Output [18]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, _source_file#157, 2026-11-06 14:14:53.38 AS _processed_dttm#158, _start_station_ride_num#160, year#161, month#162]
Input [22]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164, _start_station_ride_num#160]
(11) Sort [codegen id : 3]
Input [18]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, _source_file#157, _processed_dttm#158, _start_station_ride_num#160, year#161, month#162]
Arguments: [year#161 ASC NULLS FIRST, month#162 ASC NULLS FIRST], false, 0
(12) WriteFiles
Input [18]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, _source_file#157, _processed_dttm#158, _start_station_ride_num#160, year#161, month#162]
(13) Execute InsertIntoHadoopFsRelationCommand
Input: []
Arguments: s3a://rzvde-g12-kryukov-egor/raw_valid/citibike_data, false, [year#161, month#162], Parquet, [partitionOverwriteMode=dynamic, __partition_columns=["year","month"], path=s3a://rzvde-g12-kryukov-egor/raw_valid/citibike_data/], Overwrite, [ride_id, rideable_type, started_at, ended_at, start_station_name, start_station_id, end_station_name, end_station_id, start_lat, start_lng, end_lat, end_lng, member_casual, _source_file, _processed_dttm, _start_station_ride_num, year, month]
(14) Project
Output [13]: [ride_id#17, rideable_type#18, cast(started_at#19 as timestamp) AS started_at#72, cast(ended_at#20 as timestamp) AS ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, cast(start_lat#25 as double) AS start_lat#67, cast(start_lng#26 as double) AS start_lng#68, cast(end_lat#27 as double) AS end_lat#69, cast(end_lng#28 as double) AS end_lng#70, member_casual#29]
Input [13]: [ride_id#17, rideable_type#18, started_at#19, ended_at#20, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#25, start_lng#26, end_lat#27, end_lng#28, member_casual#29]
(15) Project
Output [21]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, (isnotnull(ride_id#17) AND NOT (trim(ride_id#17, None) = )) AS is_valid_ride_id#154, ((isnotnull(started_at#72) AND isnotnull(ended_at#73)) AND (ended_at#73 > started_at#72)) AS is_valid_duration#155, ((isnotnull(start_station_id#22) AND isnotnull(end_station_id#24)) AND NOT (end_station_id#24 = start_station_id#22)) AS is_valid_stations#156, input_file_name() AS _source_file#157, year(cast(started_at#72 as date)) AS year#161, month(cast(started_at#72 as date)) AS month#162, year(cast(started_at#72 as date)) AS _w0#163, month(cast(started_at#72 as date)) AS _w1#164]
Input [13]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29]
(16) Exchange
Input [21]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164]
Arguments: hashpartitioning(start_station_id#22, _w0#163, _w1#164, 200), ENSURE_REQUIREMENTS, [plan_id=290]
(17) Sort
Input [21]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164]
Arguments: [start_station_id#22 ASC NULLS FIRST, _w0#163 ASC NULLS FIRST, _w1#164 ASC NULLS FIRST, started_at#72 ASC NULLS FIRST], false, 0
(18) Window
Input [21]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164]
Arguments: [row_number() windowspecdefinition(start_station_id#22, _w0#163, _w1#164, started_at#72 ASC NULLS FIRST, specifiedwindowframe(RowFrame, unboundedpreceding$(), currentrow$())) AS _start_station_ride_num#160], [start_station_id#22, _w0#163, _w1#164], [started_at#72 ASC NULLS FIRST]
(19) Filter
Input [22]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164, _start_station_ride_num#160]
Condition : (((isnotnull(is_valid_ride_id#154) AND isnotnull(is_valid_duration#155)) AND isnotnull(is_valid_stations#156)) AND ((is_valid_ride_id#154 AND is_valid_duration#155) AND is_valid_stations#156))
(20) Project
Output [18]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, _source_file#157, 2026-11-06 14:14:53.38 AS _processed_dttm#158, _start_station_ride_num#160, year#161, month#162]
Input [22]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, is_valid_ride_id#154, is_valid_duration#155, is_valid_stations#156, _source_file#157, year#161, month#162, _w0#163, _w1#164, _start_station_ride_num#160]
(21) Sort
Input [18]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, _source_file#157, _processed_dttm#158, _start_station_ride_num#160, year#161, month#162]
Arguments: [year#161 ASC NULLS FIRST, month#162 ASC NULLS FIRST], false, 0
(22) WriteFiles
Input [18]: [ride_id#17, rideable_type#18, started_at#72, ended_at#73, start_station_name#21, start_station_id#22, end_station_name#23, end_station_id#24, start_lat#67, start_lng#68, end_lat#69, end_lng#70, member_casual#29, _source_file#157, _processed_dttm#158, _start_station_ride_num#160, year#161, month#162]
(23) Execute InsertIntoHadoopFsRelationCommand
Input: []
Arguments: s3a://rzvde-g12-kryukov-egor/raw_valid/citibike_data, false, [year#161, month#162], Parquet, [partitionOverwriteMode=dynamic, __partition_columns=["year","month"], path=s3a://rzvde-g12-kryukov-egor/raw_valid/citibike_data/], Overwrite, [ride_id, rideable_type, started_at, ended_at, start_station_name, start_station_id, end_station_name, end_station_id, start_lat, start_lng, end_lat, end_lng, member_casual, _source_file, _processed_dttm, _start_station_ride_num, year, month]
(24) AdaptiveSparkPlan
Output: []
Arguments: isFinalPlan=true