我正试图弄清楚如何从列DateCol
中获取Max
日期,该列小于变量run_date
。
例如,从下面的输入表中,我想将DateCol
与变量runtime
进行比较。假设run_time= '2022-03-05'
,我想选择第三行,因为这是最大值所在的位置,而DateCol<='2022-03-05'
如何做到这一点?非常感谢。
+---+---+------+
| ID| DateCol |
+---+---+-------
|1. |'2022-03-01'|
|2 |'2022-03-03'|
|3. |'2022-03-04'|
|4. |'2022-03-06'|
+---+------------+
只需根据run_time
进行筛选,然后按日期排序并获得最大记录。
run_time= '2022-03-05'
(df
.where(F.col('DateCol') <= run_time)
.orderBy(F.desc('DateCol'))
.limit(1)
.show()
)
+---+----------+
| ID| DateCol|
+---+----------+
| 3|2022-03-04|
+---+----------+