根据pyspark中其他列的日期范围检索每个分区的数据
PySpark中有一个数据帧,数据如下: 原始数据:根据pyspark中其他列的日期范围检索每个分区的数据,pyspark,apache-spark-sql,Pyspark,Apache Spark Sql,PySpark中有一个数据帧,数据如下: 原始数据: Shop Customer date retrive_days A C1 15/06/2019 2 A C1 16/06/2019 0 A C1 17/06/2019 0 A C1 18/06/2019 0 B C2 20/07/2019 5 B C2 21/07/2019 0 B C2 23
Shop Customer date retrive_days
A C1 15/06/2019 2
A C1 16/06/2019 0
A C1 17/06/2019 0
A C1 18/06/2019 0
B C2 20/07/2019 5
B C2 21/07/2019 0
B C2 23/07/2019 0
B C2 30/07/2019 0
B C2 01/08/2019 6
B C2 02/08/2019 0
B C2 03/08/2019 0
B C2 09/08/2019 0
B C2 10/08/2019 1
B C2 11/08/2019 0
B C2 13/08/2019 0
Shop Customer date retrive_days
A C1 15/06/2019 2
A C1 16/06/2019 0
B C2 20/07/2019 5
B C2 21/07/2019 0
B C2 23/07/2019 0
B C2 01/08/2019 6
B C2 02/08/2019 0
B C2 03/08/2019 0
B C2 10/08/2019 1
B C2 11/08/2019 0
每个客户都有一个他/她访问商店的日期,每个客户也有5天的时间,并且必须将这些时间段的数据提取到输出中
我试图得到一个输出,它在PySpark中应该是这样的,根据每个客户的retrive_days值进行过滤
预期输出:
Shop Customer date retrive_days
A C1 15/06/2019 2
A C1 16/06/2019 0
A C1 17/06/2019 0
A C1 18/06/2019 0
B C2 20/07/2019 5
B C2 21/07/2019 0
B C2 23/07/2019 0
B C2 30/07/2019 0
B C2 01/08/2019 6
B C2 02/08/2019 0
B C2 03/08/2019 0
B C2 09/08/2019 0
B C2 10/08/2019 1
B C2 11/08/2019 0
B C2 13/08/2019 0
Shop Customer date retrive_days
A C1 15/06/2019 2
A C1 16/06/2019 0
B C2 20/07/2019 5
B C2 21/07/2019 0
B C2 23/07/2019 0
B C2 01/08/2019 6
B C2 02/08/2019 0
B C2 03/08/2019 0
B C2 10/08/2019 1
B C2 11/08/2019 0
使用
窗口功能尝试此操作
在示例输出中,应省略最后一行,因为对于其他2,5,6逻辑,日期不应等于最大日期(retrive_days+date)。如果不是这样,请使用过滤器('date1尝试使用窗口功能进行过滤
在示例输出中,应省略最后一行,因为对于其他2,5,6逻辑,日期不应等于最大日期(retrive_days+date)。如果不是这样,请执行筛选('Date1你能发布你尝试过的东西和你面临的问题是什么?你所说的取回天数是什么意思?问题不清楚你能发布你尝试过的东西和你面临的问题是什么吗?取回天数是什么意思?问题不清楚。如果顾客只有一次光顾一家商店,但实际上是这样的事实上,每个客户在相同或不同的检索天数内访问相同或不同的店铺的次数为N次。Murtihash如果客户对一家店铺只有一次访问,则该方法有效,但实际上,每个客户在相同或不同的检索天数内访问相同或不同的店铺的次数为N次。