我的数据集如下所示:
Txn_date Ep_end_dt
31-Dec-17 30-Dec-17
30-Dec-17 28-Dec-17
28-Dec-17 27-Dec-17
27-Dec-17 26-Dec-17
26-Dec-17 24-Dec-17
25-Dec-17 23-Dec-17
24-Dec-17 23-Dec-17
23-Dec-17 21-Dec-17
txn日期和ep\u end\u dt组合应归类为非重叠事件,如下表所示:
Txn_date Ep_end_dt Episode
31-Dec-17 30-Dec-17 1
30-Dec-17 28-Dec-17 0
28-Dec-17 27-Dec-17 1
27-Dec-17 26-Dec-17 0
26-Dec-17 24-Dec-17 1
25-Dec-17 23-Dec-17 0
24-Dec-17 23-Dec-17 0
23-Dec-17 21-Dec-17 1
31到30是一集,而30到28不是因为第一个间隔已经包含30,28到27是一集,但27到26不是因为27已经包含在间隔28到27中,依此类推。显然,生成的事件标志取决于上一个间隔是否被分类为事件。你知道吗
我需要在Pypark实现这一点。我已经有一个月没有开始研究Pyspark了。我试图定义一个基于txn\u date和ep\u end\u dt的延迟的规则
df.withColumn("lag_txn",lag(txn_date,1))\
.withColumn("lag_ep_end_dt",lag(ep_end_Dt,1))
我尝试了不同的滞后顺序,以便得出基于滞后的规则。然而,由于它没有考虑到前一集的创建,所以我无法得到任何虚拟变量的组合。你知道吗
我尝试过循环和递归。然而,在Pyspark中,我得到了一个运行时错误,因为通过递归达到最大深度,而loop给了我一个超时错误。有人能帮我解决这个问题吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐