== Parsed Logical Plan ==
'Aggregate ['city], ['city, unresolvedalias('sum('amount))]
+- Filter (city#19 = Київ)
+- LogicalRDD [id#18L, city#19, amount#20L], false
== Analyzed Logical Plan ==
city: string, sum(amount): bigint
Aggregate [city#19], [city#19, sum(amount#20L) AS sum(amount)#127L]
+- Filter (city#19 = Київ)
+- LogicalRDD [id#18L, city#19, amount#20L], false
== Optimized Logical Plan ==
Aggregate [city#19], [city#19, sum(amount#20L) AS sum(amount)#127L]
+- Project [city#19, amount#20L]
+- Filter (isnotnull(city#19) AND (city#19 = Київ))
+- LogicalRDD [id#18L, city#19, amount#20L], false
== Physical Plan ==
AdaptiveSparkPlan isFinalPlan=false
+- HashAggregate(keys=[city#19], functions=[sum(amount#20L)], output=[city#19, sum(amount)#127L])
+- Exchange hashpartitioning(city#19, 4), ENSURE_REQUIREMENTS, [plan_id=458]
+- HashAggregate(keys=[city#19], functions=[partial_sum(amount#20L)], output=[city#19, sum#129L])
+- Project [city#19, amount#20L]
+- Filter (isnotnull(city#19) AND (city#19 = Київ))
+- Scan ExistingRDD[id#18L,city#19,amount#20L]