我想在滚动窗口中计算列(NumberOfItems)的不同值:
rollingWindow = Window.partitionBy('orderID').orderBy("ROWNUMBER").rowsBetween(-3, 0)
我能够计算总和,平均值和其他函数,但是我无法在窗口上计算“NumberOfItems”列的不同值。
ds.withColumn( "AVG_NUMBEROFITEMS",func.avg(ds["NumberOfItems"]).over(rollingWindow)).orderBy("ROWNUMBER").show()
我正在使用pyspark(Spark 1.6.1)。
以下解决方案对我没有用处: pyspark: count distinct over a window获取以下错误消息:'java.lang.UnsupportedOperationException:'窗口操作不支持'collect_set(NumberOfItem)。')。
非常感谢任何反馈。谢谢!