我有下面的代码来创建窗口和聚集窗口中的值。
df.groupBy(window("time", "30 minutes"))\
.agg(func.countDistinct("customer_numbers")
窗口列(保存时间段的列)现在是一个具有两个datetimes的结构。
[datetime1, datetime2].
我的Dataframe如下所示:
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
我想把它分成两列,去掉原来的窗口列,但我似乎找不到办法。我尝试使用自定义项,但我认为在scala中,您可以简单地做一些事情,比如在pyspark中获取我不知道如何实现的第一项。我尝试添加一个自定义项,但它没有给我第一个值,而是给了我一个日历。
.withColumn("key", $"window"._1)
有人知道我怎样才能做到这一点吗?
1条答案
按热度按时间bqujaahr1#
你可以简单地使用
select
作为