Я использую pySpark
и настроил свой фрейм данных с двумя столбцами, представляющими ежедневную цену активов, следующим образом:
ind = sc.parallelize(range(1,5))
prices = sc.parallelize([33.3,31.1,51.2,21.3])
data = ind.zip(prices)
df = sqlCtx.createDataFrame(data,["day","price"])
Я получаю после применения df.show()
:
+---+-----+
|day|price|
+---+-----+
| 1| 33.3|
| 2| 31.1|
| 3| 51.2|
| 4| 21.3|
+---+-----+
Что хорошо и все. Я хотел бы иметь другой столбец, который содержит ежедневные возвращения столбца цен, то есть что-то вроде
(price(day2)-price(day1))/(price(day1))
После долгих исследований мне сказали, что это наиболее эффективно достигается путем применения функций pyspark.sql.window
, но я не могу понять, как это сделать.