我的数据集如下所示:
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 date和ep_end_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等等中被覆盖。显然,合成的剧集标志取决于先前的间隔是否被分类为剧集。
我需要在Pyspark实现这一目标。自从我开始在Pyspark工作已经有一个月了。我试图根据txn_date和ep_end_dt的滞后来定义规则
df.withColumn("lag_txn",lag(txn_date,1))\
.withColumn("lag_ep_end_dt",lag(ep_end_Dt,1))
为了达到基于滞后的规则,我尝试了不同的滞后顺序。但是,由于它没有考虑到前一集的创作,我没有得到任何虚拟变量的组合,可以做到这一点。
我尝试过循环和递归。但是,在Pyspark中,我通过递归获得了达到最大深度的运行时错误,并且循环给出了超时错误。有人可以帮我解决这个问题吗?