我在 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))
相关分类