【发布时间】:2019-03-23 10:51:57
【问题描述】:
如何检查 Dataframe 中相邻行(前一行和后一行)的日期。这应该发生在关键级别
在按关键日期排序后,我有以下数据
source_Df.show()
+-----+--------+------------+------------+
| key | code | begin_dt | end_dt |
+-----+--------+------------+------------+
| 10 | ABC | 2018-01-01 | 2018-01-08 |
| 10 | BAC | 2018-01-03 | 2018-01-15 |
| 10 | CAS | 2018-01-03 | 2018-01-21 |
| 20 | AAA | 2017-11-12 | 2018-01-03 |
| 20 | DAS | 2018-01-01 | 2018-01-12 |
| 20 | EDS | 2018-02-01 | 2018-02-16 |
+-----+--------+------------+------------+
当日期在这些行的范围内时(即当前行 begin_dt 位于前一行的开始日期和结束日期之间),我需要在所有此类行中设置最低开始日期和最高结束日期日期。
这是我需要的输出..
final_Df.show()
+-----+--------+------------+------------+
| key | code | begin_dt | end_dt |
+-----+--------+------------+------------+
| 10 | ABC | 2018-01-01 | 2018-01-21 |
| 10 | BAC | 2018-01-01 | 2018-01-21 |
| 10 | CAS | 2018-01-01 | 2018-01-21 |
| 20 | AAA | 2017-11-12 | 2018-01-12 |
| 20 | DAS | 2017-11-12 | 2018-01-12 |
| 20 | EDS | 2018-02-01 | 2018-02-16 |
+-----+--------+------------+------------+
欣赏任何实现这一目标的想法。提前致谢!
【问题讨论】:
标签: scala apache-spark apache-spark-sql