因为我是编程新手,或者至少我是基础知识新手,所以我面临着一个问题,我不知道如何计算PySpark中的“周期”。
让我们假设这是DataFrame:
| 信|组|
| --|--|
| 一| 0 |
| 一| 0 |
| 一| 1 |
| 一| 1 |
| 一| 1 |
| 一| 0 |
| 一| 0 |
| 一| 1 |
| 一| 1 |
| 一| 0 |
| 一| 0 |
我想看到的结果是有多少“周期(两个或X #1是连续的)".在这种情况下将是:
- 2个循环(下表显示了分开的“循环”)。
我怎样才能达到这个结果?
| 信|组|
| --|--|
| 一| 0 |
| 一| 0 |
| --|--|
| 一| 1 |
| 一| 1 |
| 一| 1 |
| --|--|
| 一| 0 |
| 一| 0 |
| --|--|
| 一| 1 |
| 一| 1 |
| --|--|
| 一| 0 |
| 一| 0 |
如果你能帮助我一个例子或一个链接,如果这是已经提到的将不胜感激。
我试了几个过滤器,但都没有成功。
先谢了。
1条答案
按热度按时间jdzmm42g1#
您需要一种方法来保留当前的行顺序,以便对周期进行计数。为此,可以使用函数
monotonically_increasing_id()
为每行分配一个唯一的“递增值”,以便我们按该列进行排序,原始行序列被保留。一旦就位,我们可以使用基于窗口的计算(需要对行进行排序)来提供周期计数。注:不确定2个连续行的要求,下面没有处理
字符串