pyspark:按ID计算连续差

pyspark:按ID计算连续差,pyspark,Pyspark,我的问题和Pypark完全一样 我有一个数据帧 ID value 1 2 1 3 1 5 2 4 2 9 我想根据ID计算value的lag,因此: ID value_lag 1 1 1 2 2 5 您可以使用Window函数计算差异,如sql中所示 >>> df.show() +---+-----+ | id|value| +---+-----+ | 1| 2| | 1| 3| | 1| 5| | 2| 4| | 2| 9| +-

我的问题和Pypark完全一样

我有一个数据帧

ID value
1  2
1 3
1 5
2 4
2 9
我想根据
ID
计算
value
lag
,因此:

ID value_lag
1 1
1 2
2 5

您可以使用
Window
函数计算差异,如
sql
中所示

>>> df.show()
+---+-----+
| id|value|
+---+-----+
|  1|    2|
|  1|    3|
|  1|    5|
|  2|    4|
|  2|    9|
+---+-----+

>>> from pyspark.sql import Window
>>> cnd = F.col('value') - F.lag('value').over(w)
>>> df.select('id',cnd.name('value_lag')).dropna().show()
+---+---------+
| id|value_lag|
+---+---------+
|  1|        1|
|  1|        2|
|  2|        5|
+---+---------+

窗口
函数的作用是什么?检查此项,