Python 在PySpark中填写前一天缺失的日期

Python 在PySpark中填写前一天缺失的日期,python,pyspark,pyspark-sql,Python,Pyspark,Pyspark Sql,我在以下问题中提出了同样的问题: 不同之处在于,我需要计算两个不同日期之间的小时差,例如2019-12-26 22:00:00和2019-12-27 09:00:00之间的小时差,在这种特殊情况下,由于范围变为负值,以下函数将失败: def missing_hours(t1, t2): return [t1 + relativedelta(hours=-x) for x in range (1, t1.hour-t2.hour)] missing_hours_udf = udf(m

我在以下问题中提出了同样的问题:

不同之处在于,我需要计算两个不同日期之间的小时差,例如2019-12-26 22:00:00和2019-12-27 09:00:00之间的小时差,在这种特殊情况下,由于范围变为负值,以下函数将失败:


def missing_hours(t1, t2):
    return [t1 + relativedelta(hours=-x) for x in range (1, t1.hour-t2.hour)]

missing_hours_udf = udf(missing_hours, ArrayType(TimestampType()))

我试着用几种方法修改它(例如尝试(t1-t2).hour),但总是失败


有人知道如何正确修改上述函数以获得所需的结果吗?

以下是更新后的函数,用于处理两个日期之间的填充时间

def missing_hours(t1, t2):
    diff = t1 - t2
    days, seconds = diff.days, diff.seconds
    hours = days * 24 + seconds // 3600

    return [t1 + relativedelta(hours=-x) for x in range(1, hours)]

好的,非常感谢。有没有不使用relativedelta函数的方法?date util包给我带来了很多麻烦