Python 在PySpark中填写前一天缺失的日期
我在以下问题中提出了同样的问题: 不同之处在于,我需要计算两个不同日期之间的小时差,例如2019-12-26 22:00:00和2019-12-27 09:00:00之间的小时差,在这种特殊情况下,由于范围变为负值,以下函数将失败: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
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包给我带来了很多麻烦