1
给定一个正龙i
和数据帧[PY]星火SQL:多列sessionization
+-----+--+--+
|group|n1|n2|
+-----+--+--+
| 1| 0| 0|
| 1| 1| 1|
| 1| 1| 5|
| 1| 2| 2|
| 1| 2| 6|
| 1| 3| 3|
| 1| 3| 7|
| 1| 4| 4|
| 1| 5| 1|
| 1| 5| 5|
+-----+--+--+
你会如何sessionize排在同group
使得对于每对连续行r1
,r2
中的会议r2.n1
>r1.n1
,r2.n2
>r1.n2
,和max(r2.n1
- r1.n1
,r2.n2
- r1.n2
)< i
?请注意,n1
和n2
值可能不是唯一的,这意味着构成会话的行在DataFrame中可能不连续。
作为示例,对于给定的数据帧和i
= 3的结果将是
+-----+--+--+-------+
|group|n1|n2|session|
+-----+--+--+-------+
| 1| 0| 0| 1|
| 1| 1| 1| 1|
| 1| 1| 5| 2|
| 1| 2| 2| 1|
| 1| 2| 6| 2|
| 1| 3| 3| 1|
| 1| 3| 7| 2|
| 1| 4| 4| 1|
| 1| 5| 1| 3|
| 1| 5| 5| 1|
+-----+--+--+-------+
任何帮助或暗示将不胜感激。谢谢!
谢谢你,@Marie。找到连接的组件的伎俩!不幸的是,性能很糟糕 - 花了一分多时才找到我提供的例子的解决方案!你知道这可能是为什么吗? – alan
它迭代次数与最大分支长度一样多。你可以尝试调整你的图表,使其运行速度更快。 – MaFF
感谢您的建议。不幸的是,即使使用图形调整,糟糕的运行时间性能也会影响我的生产数据集。 – alan