您可以將release_df轉換為包含一列,該列將在發布有效之前查找,因為可以使用lead。 一旦包含了release_valid_end,連接條件就會改變,以查找measure_date和release_date和release_valid_end之間的日期比較檢查。 from datetime import datetimefrom pyspark.sql import functions as Ffrom pyspark.sql import Window as Wmeasure_data = [(394, datetime.strptime("2018-07-09T09:25:40", "%Y-%m-%dT%H:%M:%S"), "some data",), (394, datetime.strptime("2018-08-23T09:51:18", "%Y-%m-%dT%H:%M:%S"), "other data",), (394, datetime.strptime("2019-04-23T09:51:18", "%Y-%m-%dT%H:%M:%S"), "other data",), (398, datetime.strptime("2018-01-10T12:15:53", "%Y-%m-%dT%H:%M:%S"), "more data",), (398, da