Python 有没有一种方法可以在时间戳上用偏移量连接两个数据集,以便将时间_1与时间_2连接起来,其中时间_2比时间_1早2小时?

Python 有没有一种方法可以在时间戳上用偏移量连接两个数据集,以便将时间_1与时间_2连接起来,其中时间_2比时间_1早2小时?,python,python-3.x,join,pyspark,databricks,Python,Python 3.x,Join,Pyspark,Databricks,我试图根据预定行程前2小时的天气预测航班延误。我有一个旅行数据集(称为df1)和一个天气数据集(称为df2)。为了预测延迟,我尝试以2小时的偏移量加入df1和df2。也就是说,我想看一下预定行程数据前2小时的天气数据。数据的成对向下视图类似于这样 示例df1(行程数据): 旅行数据 位置 出发时间 延迟 废话 KPHX 2015-04-23T15:02:00.000+0000 1. 呜呜 克尔杜 2015-04-27T15:19:00.000+0000 0 将连接条件更改为>=并在按位置分区后获

我试图根据预定行程前2小时的天气预测航班延误。我有一个旅行数据集(称为df1)和一个天气数据集(称为df2)。为了预测延迟,我尝试以2小时的偏移量加入df1和df2。也就是说,我想看一下预定行程数据前2小时的天气数据。数据的成对向下视图类似于这样

示例df1(行程数据):

旅行数据 位置 出发时间 延迟 废话 KPHX 2015-04-23T15:02:00.000+0000 1. 呜呜 克尔杜 2015-04-27T15:19:00.000+0000 0
将连接条件更改为>=并在按位置分区后获取最大报告时间戳

from pyspark.sql import functions as F
from pyspark.sql.window import Window

# 1.Join as per conditions
# 2. Partition by location, order by report_ts desc, add row_number
# 3. Filter row_number == 1
joinedDF = airlines_6m_recode.join(
  weather_filtered,
  (airlines_6m_recode["location"] == weather_filtered["location"]) & (weather_filtered["report_time_ts"] <= airlines_6m_recode["departure_time_ts"] - F.expr("INTERVAL 2 HOURS"))
  , "inner")\
            .withColumn("row_number", F.row_number().over(Window.partitionBy(airlines_6m_recode['location'])\
            .orderBy(weather_filtered["report_time_ts"].desc())))

# Just to Print Intermediate result.
joinedDF.show()

joinedDF.filter('row_number == 1').show()
从pyspark.sql导入函数为F
从pyspark.sql.window导入窗口
#1.按条件加入
# 2. 按位置划分,按报告说明排序,添加行号
# 3. 过滤器行数==1
joinedDF=航空公司\u 6m\u重新编码。加入(
天气预报,

(航空公司重新编码[“位置”]==天气过滤[“位置”])和(天气过滤[“报告时间”]谢谢!那么有没有办法进一步窗口条件,使其仅与2小时前的天气报告匹配,但不会太远?类似于添加天气过滤[“报告时间”]>=(航空公司重新编码[“起飞时间”]-F.expr(“间隔3小时”)?最终目标是查看4年的数据,因此我担心我是否只使用了,你可以在窗口中使用两个时间戳之间的时差。你可以在窗口中使用两个时间戳之间的时差。过滤器((天气过滤[“报告时间”]-(航空公司重新编码[“起飞时间])/抱歉,我需要天气报告在2小时窗口之外。我想我可以在初始连接条件下将比较器切换到>=吗?