使用 Spark DataFrame 和 Window 函数计算滚动平均值 return

Using Spark DataFrame and Window Functions to calculate the rolling average return

这是我第一次使用 spark 数据框,我正在尝试弄清楚如何使用 window 函数来计算每个日期每个股票的平均每日 return。

我正在尝试按代码分组,然后尝试应用滚动差异 window 函数,但我找不到很多关于 window 函数或它们如何工作的文档.

我拥有的数据是日期、开盘价、最高价、最低价、收盘价、交易量和代码。

今天的收盘价减去昨天的收盘价,然后除以昨天的收盘价,得到滚动平均线return。

到目前为止我尝试了什么:

w = Window() df.groupBy("ticker")

我正在尝试学习如何结合使用 window 和 groupby 来解决我的问题。

你是说:

w = Window().partitionBy("ticker").orderBy("date")

df.withColumn("percentDiff", (col("close") - lag("close", 1).over(w)) / lag("close", 1).over(w)) \
  .groupBy("date").agg(mean("percentDiff"))