2025-12-20 20:56:33.985540 AdaptiveSparkPlan isFinalPlan=false +- Sort [total_clicks#203L DESC NULLS LAST], true, 0 +- Exchange rangepartitioning(total_clicks#203L DESC NULLS LAST, 200), ENSURE_REQUIREMENTS, [plan_id=1422] +- HashAggregate(keys=[type#23], functions=[sum(n#38), avg(n#38), count(distinct curr#22)], output=[type#23, unique_pages#202L, total_clicks#203L, avg_clicks_per_pair#204]) +- Exchange hashpartitioning(type#23, 200), ENSURE_REQUIREMENTS, [plan_id=1419] +- HashAggregate(keys=[type#23], functions=[merge_sum(n#38), merge_avg(n#38), partial_count(distinct curr#22)], output=[type#23, sum#209L, sum#212, count#213L, count#216L]) +- HashAggregate(keys=[type#23, curr#22], functions=[merge_sum(n#38), merge_avg(n#38)], output=[type#23, curr#22, sum#209L, sum#212, count#213L]) +- Exchange hashpartitioning(type#23, curr#22, 200), ENSURE_REQUIREMENTS, [plan_id=1415] +- HashAggregate(keys=[type#23, curr#22], functions=[partial_sum(n#38), partial_avg(n#38)], output=[type#23, curr#22, sum#209L, sum#212, count#213L]) +- HashAggregate(keys=[prev#21, curr#22, type#23, n#38], functions=[], output=[curr#22, type#23, n#38]) +- Exchange hashpartitioning(prev#21, curr#22, type#23, n#38, 200), ENSURE_REQUIREMENTS, [plan_id=1411] +- HashAggregate(keys=[prev#21, curr#22, type#23, n#38], functions=[], output=[prev#21, curr#22, type#23, n#38]) +- Project [_c0#17 AS prev#21, _c1#18 AS curr#22, _c2#19 AS type#23, cast(_c3#20 as int) AS n#38] +- Filter ((((isnotnull(_c3#20) AND isnotnull(_c1#18)) AND isnotnull(cast(_c3#20 as int))) AND (cast(_c3#20 as int) >= 0)) AND (length(_c1#18) > 0)) +- FileScan csv [_c0#17,_c1#18,_c2#19,_c3#20] Batched: false, DataFilters: [isnotnull(_c3#20), isnotnull(_c1#18), isnotnull(cast(_c3#20 as int)), (cast(_c3#20 as int) >= 0)..., Format: CSV, Location: InMemoryFileIndex(1 paths)[file:/home/sable/Documents/data engineering1/projet-final/data/clickst..., PartitionFilters: [], PushedFilters: [IsNotNull(_c3), IsNotNull(_c1)], ReadSchema: struct<_c0:string,_c1:string,_c2:string,_c3:string>