PySpark-如何选择与参数相比的最大值



我正试图弄清楚如何从列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|
+---+----------+

最新更新