pyspark:按ID计算连续差
我的问题和Pypark完全一样 我有一个数据帧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| +-
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|
+---+---------+
窗口
函数的作用是什么?检查此项,