【发布时间】:2018-06-07 05:44:42
【问题描述】:
我有以下代码创建窗口并在窗口中聚合值。
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)
有谁知道我如何做到这一点?
【问题讨论】:
标签: apache-spark hadoop pyspark apache-spark-sql pyspark-sql