You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark中基于Unique Idn的新访问生成visit seq字段方法

PySpark生成访问序列(visit seq)解决方案

需求说明

按Unique Idn分组,每组内按visit time排序,每当new visit字段值为1时,visit seq计数器递增,后续行沿用当前计数器值直到下一个1出现。

实现代码

假设你的DataFrame名为df,执行以下代码即可生成目标字段:

from pyspark.sql import Window
import pyspark.sql.functions as F

# 定义窗口规则:按Unique Idn分区,按visit time升序,范围覆盖组内从首行到当前行
window_spec = Window.partitionBy("Unique Idn").orderBy("visit time").rowsBetween(Window.unboundedPreceding, Window.currentRow)

# 累计求和new visit得到visit seq
df_with_seq = df.withColumn("visit seq", F.sum("new visit").over(window_spec))

# 查看结果
df_with_seq.show()

逻辑解释

  • 窗口函数会在每个Unique Idn分组内,从最早的访问时间开始,对new visit做累计求和。
  • 每次遇到new visit=1时,累计值自动加1,后续无新访问标记的行会保持当前累计值,完全匹配你需要的访问编号生成逻辑。

以你提到的Unique Idn=11为例:

当new visit=1触发后,visit seq变为2,后续6:24到6:26的所有行都会沿用这个编号,直到下一个new visit=1出现才会再次递增。

内容的提问来源于stack exchange,提问作者user1403789

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 16:47:03