基于列条件的 Pyspark 计数器
您好,我想根据 Tag1 列的条件创建一个带有计数器的新列。
我有这个:
Time | Tag1 |
---|---|
1 | 0 |
2 | 1 |
3 | 1 |
4 | 1 |
5 | 0 |
6 | 0 |
7 | 1 |
8 | 1 |
9 | 1 |
10 | 1 |
11 | 0 |
12 | 0 |
我想要这样:
Time | Tag1 | Counter |
---|---|---|
1 | 0 | 0 |
2 | 1 | 1 |
3 | 1 | 2 |
4 | 1 | 3 |
5 | 0 | 0 |
6 | 0 | 0 |
7 | 1 | 1 |
8 | 1 | 2 |
9 | 1 | 3 |
10 | 1 | 4 |
11 | 0 | 0 |
12 | 0 | 0 |
我尝试使用 function.when(df.Tag1 == 1, function.lag(df.Tag1)+1).otherwise(0) 但不起作用。
有什么想法吗?
多谢
Hello I would like to create a new column with a counter based on the condition of Tag1 column.
I have this:
Time | Tag1 |
---|---|
1 | 0 |
2 | 1 |
3 | 1 |
4 | 1 |
5 | 0 |
6 | 0 |
7 | 1 |
8 | 1 |
9 | 1 |
10 | 1 |
11 | 0 |
12 | 0 |
And I would like this:
Time | Tag1 | Counter |
---|---|---|
1 | 0 | 0 |
2 | 1 | 1 |
3 | 1 | 2 |
4 | 1 | 3 |
5 | 0 | 0 |
6 | 0 | 0 |
7 | 1 | 1 |
8 | 1 | 2 |
9 | 1 | 3 |
10 | 1 | 4 |
11 | 0 | 0 |
12 | 0 | 0 |
I tried with function.when(df.Tag1 == 1, function.lag(df.Tag1)+1).otherwise(0) but doesn't work.
Any idea?
Thanks a lot
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
窗函数
Window function