让我们假设我们有这样的数据(按时间排序),并在Pyspark数据框中为类创建了虚拟列:
ID class e_TYPE_B e_TYPE_C e_TYPE_L e_TYPE_A e_TYPE_E e_TYPE_G
1 G 0 0 0 0 0 1
1 B 1 0 0 0 0 0
1 B 1 0 0 0 0 0
2 E 0 0 0 0 1 0
2 E 0 0 0 0 1 0
2 C 0 1 0 0 0 0
2 C 0 1 0 0 0 0
2 E 0 0 0 0 1 0
2 E 0 0 0 0 1 0
3 L 0 0 1 0 0 0
3 L 0 0 1 0 0 0
3 B 1 0 0 0 0 0
3 E 0 0 0 0 1 0
4 A 0 0 0 1 0 0
4 A 0 0 0 1 0 0
5 B 1 0 0 0 0 0
5 B 1 0 0 0 0 0
5 A 0 0 0 1 0 0
5 A 0 0 0 1 0 0
现在,我试图找出从一类转移到另一类的ID的数量,它可以是连续的,也可以是介于两者之间的其他一些类。应该根据ID从上到下为每个类创建关系。
例如
我想到了使用Window操作,该操作应该在ID上进行分区,但是如何迭代该分区以计算上述类关系的数量却使我很努力。
请为此提供解决方案/代码段。
谢谢。