0

我有一个像这样的 pyspark 数据框,需要 SEQ 输出,如下所示:

R_ID    ORDER   SC_ITEM seq
A   1       0
A   3   1   1
A   4   1   2
A   5   1   3
A   6   1   4
A   7   1   5
A   8   1   6
A   9   1   7
A   10  0   0
A   11  1   1
A   12  0   0
A   13  1   
A   14  0   
A   15  1   1
A   16  1   2
A   17  1   3
A   18  1   4
A   19  1   5
A   20  1   6
A   21  0   0
A   22  0   0
B   1   0   0
B   2   1   1
C   1   1   1
C   2   1   2

不确定数据是否正确显示。所以附上图片:在此处输入图片描述

我做了这样的事情:

RN = Window().orderBy(lit('A'))


.when(((F.col("R_ID")==(lag(F.col("R_ID"),1).over(RN))) & (F.col("SC_ITEM")== 1)), (F.col("SC_ITEM") + (lag(F.col("SEQ"),1).over(RN))))\

不确定我是否可以领先或落后于 SEQ。请帮助如何做到这一点

4

0 回答 0