我有一个关于 Sparks Dataframe 1.6 中的窗口操作的问题。
假设我有下表:
id|MONTH |number
1 201703 2
1 201704 3
1 201705 7
1 201706 6
目前我正在使用 rowsBetween 函数:
val window = Window.partitionBy("id")
.orderBy(asc("MONTH"))
.rowsBetween(-2, 0)
randomDF.withColumn("counter", sum(col("number")).over(window))
这给了我以下结果:
id|MONTH |number |counter
1 201703 2 2
1 201704 3 5
1 201705 7 12
1 201706 6 16
我不想实现的是在没有前置行时设置默认值(例如在 lag() 和 lead() 中)。例如:'0' 这样我得到的结果如下:
id|MONTH |number |counter
1 201703 2 0
1 201704 3 0
1 201705 7 12
1 201706 6 16
我已经查看了文档,但 Spark 1.6 不允许这样做,我想知道是否有某种解决方法。
非常感谢 !