pyspark数据框中两列之间的时间差

Time difference between two columns in pyspark dataframe

我想计算 pyspark 中两列之间的时差(以小时为单位)。 下面是示例数据框。列是字符串类型 (yyyymmddhhmmss)。

time1           time2
20191020051010  20191019051010

想要下面的输出。这里的24代表time1和time2的小时差

time1                time2         diff
20191020051010  20191019051010     24

你能试试吗

import pyspark.sql.functions as F

df.withColumn(
    'diff',
    (F.unix_timestamp(F.to_timestamp(F.col('time1')))) - 
    (F.unix_timestamp(F.to_timestamp(F.col('time2'))))/F.lit(3600)
)