如何从数据框中使用startDate和endDate并使用它来过滤pyspark中的另一个数据框

时间:2019-10-29 17:33:29

标签: python pyspark pyspark-dataframes

我有两个如下表: 第一张表:

+---+------+----------+----------+
| id|sub_id| startDate|   endDate|
+---+------+----------+----------+
|  2|     a|2018-11-15|2018-12-01|
|  2|     b|2018-10-15|2018-11-01|
|  3|     a|2018-09-15|2018-10-01|
+---+------+----------+----------+

第二张表:

+---+----------+----+
| id|      date|time|
+---+----------+----+
|  2|2018-10-15|1200|
|  2|2018-10-16|1200|
|  2|2018-10-18|1200|
|  3|2018-09-28|1200|
|  3|2018-09-29|1200|
+---+----------+----+

对于特定的ID以及给定的startDate和endDate,我需要过滤给定时间范围内的第二张表。

从过滤后的表格中,我需要时间列的总和,输出应如下所示:

+---+------+----------+----------+---------+
| id|sub_id| startDate|   endDate|totalTime|
+---+------+----------+----------+---------+
|  2|     a|2018-11-15|2018-12-01|        0|
|  2|     b|2018-10-15|2018-11-01|     3600|
|  3|     a|2018-09-15|2018-10-01|     2400|
+---+------+----------+----------+---------+

我的目标是避免与过滤器一起使用for循环。我尝试使用pandas_udf,但仅适用于一个数据框。

0 个答案:

没有答案