有没有办法为滚动窗口设计定义用户功能?
例如,我知道我们可以通过以下方式计算平均值 -
val wSpec1 = Window.orderBy("c1").rowsBetween(-20, +20)
var dfWithMovingAvg = df.withColumn( "Avg",avg(df("c2")).over(wSpec1))
现在,如果我需要将平均值更改为自定义函数(XYZ
),我该怎么做?
比如说,例如,我需要执行+, - ,+, - 或者 - 对于滚动窗口
val wSpec1 = Window.orderBy("c1").rowsBetween(-20, +20)
var dfWithAlternate = df.withColumn( "alter",XYZ(df("c2")).over(wSpec1))
现在如何定义XYZ功能?我知道我可以做到,但语法的挑战证明太难了。我确实经历了avg功能,即使这很难理解。