根据时间更新营销活动路径



我正在使用Pyspark处理以下数据帧,因此它可以适合营销归因模型:

活动假日活动点击>空超级活动>点击>空>空空>T8活动空Y活动事件U9活动空第二次活动空点击大型活动空点击>大型活动空
user_id 时间戳活动名称
akalsds124 2022-01-01 10:00 点击
akalsds124 2021-12-31 09:00假日活动NULL
akalsds124 2022-01-13 15:59 点击 X活动
akalsds124 2022-01-10 16:32 点击>空
akalsds124 2022-01-05 22:12假日活动
akalsds124 2022-01-30 20:55 事件购买
akalsds124 2022-01-30 22:10 事件购买
akalsds124 2022-01-31 10:13 事件购买
akalsds124 2022-02-03 04:55 点击
akalsds124 2022-02-07 17:30 点击
akalsds124 2022-02-12 22:37购买
akalsds124 2022-03-31 18:19 点击
akalsds124 2022-04-02 23:08 点击
akalsds124 2022-03-02 07:00T8活动
ijnbmshs33 2022-06-03 17:01 点击
ijnbmshs33 2022-05-03 10:31新活动>空
ijnbmshs33 2022-05-20 17:01 点击

我认为诀窍是在有界窗口上使用collect_list函数。下面的代码可能是你答案的第一部分

window = W.partitionBy('user_id').orderBy('unixTime').rangeBetween(-3600*24*30, 0)
path_df = (
df
.withColumn('timestamp', F.col('timestamp').cast('timestamp'))
.withColumn('unixTime', F.unix_timestamp('timestamp'))
.withColumn('pathList', F.collect_list('campaign').over(window))
.filter(F.col('event_name') == 'purchase')
)
path_df.sort('timestamp').show(truncate=False)

最新更新