== Physical Plan ==
CollectLimit (3)
+- * Project (2)
+- Scan csv (1)
(1) Scan csv
Output [5]: [ride_id#17, started_at#19, ended_at#20, start_station_id#22, end_station_id#24]
Batched: false
Location: InMemoryFileIndex [s3a://rzvde-g9-chernyshev-miron/raw/citibike_data/202507/202507-citibike-tripdata-part00.csv, ... 4 entries]
ReadSchema: struct<ride_id:string,started_at:timestamp,ended_at:timestamp,start_station_id:string,end_station_id:string>
(2) Project [codegen id : 1]
Output [3]: [toprettystring(isnotnull(ride_id#17), Some(Etc/UTC)) AS toprettystring(rule_ride_id_valid)#1591, toprettystring((ended_at#20 > started_at#19), Some(Etc/UTC)) AS toprettystring(rule_duration_valid)#1592, toprettystring(NOT (cast(end_station_id#24 as float) = cast(start_station_id#22 as float)), Some(Etc/UTC)) AS toprettystring(rule_station_valid)#1593]
Input [5]: [ride_id#17, started_at#19, ended_at#20, start_station_id#22, end_station_id#24]
(3) CollectLimit
Input [3]: [toprettystring(rule_ride_id_valid)#1591, toprettystring(rule_duration_valid)#1592, toprettystring(rule_station_valid)#1593]
Arguments: 21