如何根据 Pyspark 中其他列的值增加/减少列

我在 Pyspark 中有审计日志数据,我试图弄清楚在任何给定时间有多少人登录到系统。


因此,例如我正在工作的数据框具有以下结构


time    src_comp    auth_orient

1       C1          LogOn

2       C1          LogOn

2       C1          LogOn

3       C2          LogOn

3       C1          LogOff

4       C1          LogOn

4       C2          LogOff

5       C1          LogOn

6       C2          LogOn

6       C3          LogOff

然后从我的代码中,我想创建另一个列来显示有多少人登录,如下所示。我也不希望登录列变成负数,所以如果有人退出我没有跟踪的系统,我不想减少列:


预期输出:


time    src_comp    LoggedOn

1       C1          1

2       C1          2

3       C2          1

3       C1          1

3       C1          2

4       C2          0

5       C1          3

6       C2          1

6       C3          0

我尝试了以下代码但出现错误。


auth_dataset.groupby(auth_dataset.time,auth_dataset.src_comp).agg(F.when(auth_dataset.strt=='LogOn',number+=1).otherwise(number-=1))


MMTTMM
浏览 173回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python