У меня есть следующий код, который создает окна и агрегирует значения в окнах.
df.groupBy(window("time", "30 minutes"))\
.agg(func.countDistinct("customer_numbers")
Столбец окна (столбец, содержащий периоды времени) теперь представляет собой структуру с двумя датами и временем.
[datetime1, datetime2].
Мой фрейм данных выглядит так:
window customer_numbers
[2018-02-04:10:00:00, 2018-02-04:10:30:00] 10
[2018-02-04:10:30:00, 2018-02-04:11:00:00] 15
Я хочу, чтобы он выглядел следующим образом
start End customer_numbers
2018-02-04:10:00:00 2018-02-04:10:30:00 10
2018-02-04:10:30:00 2018-02-04:11:00:00 15
Я хочу разбить это на два столбца иизбавиться от исходного столбца окна, но я не могу найти способ сделать это.Я пытался использовать UDF, хотя я думаю, что в Scala вы можете просто сделать что-то вроде того, чтобы получить первый элемент, который я не знаю, как это сделать в pyspark.Я попытался добавить UDF, но вместо этого дал мне первое значение, которое он дал мне календарь.
.withColumn("key", $"window"._1)
Кто-нибудь знает, как мне этого добиться?