pyspark-通过不均衡的周期长度的加权移动平均值

时间:2019-01-02 09:12:43

标签: python-3.x pyspark pyspark-sql

我正在尝试计算时间戳记录不一致的数据帧的加权(基于持续时间)移动平均值。 以下是df示例。

+-----+-------------------+
|value|               date|
+-----+-------------------+
|  9.0|2017-03-15 11:42:00|
|  7.0|2017-03-16 13:02:00|
|  7.0|2017-03-16 19:02:00|
|  7.0|2017-03-16 21:38:00|
|  7.0|2017-03-16 21:58:00|
|  6.0|2017-03-18 10:07:00|
| 22.0|2017-03-18 12:21:00|
| 21.0|2017-03-20 23:21:00|
| 19.0|2017-03-21 10:21:00|
| 17.0|2017-03-04 11:01:00|
| 16.0|2017-03-09 18:41:00|
+-----+-------------------+

我尝试使用rangeBetween,但我认为只需要简单的平均 然后尝试对pyspark.sql.functions.window使用w = window('date','7 days','5 minutes')方法,并用udf计算加权平均值,但是我什至无法计算简单的平均值,因为它要花很多时间才能计算出来。

w = window('date','7 days','5 minutes')
win = Window.partitionBy(w).orderBy(df['date'].asc())
new_df = df.withColumn('average',avg('value').over(win))

还建议我将表格转换为均匀分布的时间段。 您建议哪一个?为什么?如何进行滑动和填充? 我是pyspark的新手

谢谢

0 个答案:

没有答案