首页 > 解决方案 > 在 PySpark 中使用夏令时获取两个日期之间天数的巧妙方法

问题描述

我需要计算 PySpark DataFrame 的两个时间戳之间的天数差异。通常时间戳之间的差异应该是一整天,但由于日期包括夏令时,有时差异可能是 +/- 一天。什么是防止这种差异的聪明方法?

ID  start.                 stop                   days_between
A   2020-10-30 00:53:21    2020-11-28 23:53:21    29
B   2020-11-28 23:53:21    2020-12-28 23:53:21    30

所需的输出将考虑夏令时,如下所示

ID  start.                 stop                   days_between
A   2020-10-30 00:53:21    2020-11-28 23:53:21    30
B   2020-11-28 23:53:21    2020-12-28 23:53:21    30

我到目前为止计算的是:

df = df.withColumn('days_between',
                     func.datediff(col("stop"),
                     col("start")))

有没有聪明的办法解决这个问题?或者我只是简单地将 1h 添加到每年之间xxxx-10-31 00:00:00和之间xxxx-03-26 23:59:59的每个时间戳?

标签: pythondatetimepysparkdatediff

解决方案


推荐阅读