Мой искровой (pyspark) ETL, использующий оконную функцию, перестал работать.Интересно, есть ли асимметрия в данных.Окно делает что-то вроде
windowSpec = Window.partitionBy('user').orderBy('time').rowsBetween(1, 1)
next_time = F.lead('time', 1).over(windowSpec)
Что если у данных есть какие-то посторонние пользователи с большим количеством данных?Когда пользователь запускает разделы, чтобы открыть окно, я представляю, что могу получить раздел, который слишком велик - я вижу, что только два из многих заданий не работают (задание может быть неправильной терминологией).
Как мне это проверить?Я знаю, что могу сделать df.groupBy('user').count()
и отыскать посторонних пользователей, но как мне увидеть, насколько большими будут разделы, необходимые для функции Window?Я надеюсь, что спарк автоматически поместит несколько крупных пользователей в один раздел и множество мелких пользователей в другие.