Pyspark 如何获取两个时间戳之间的时间差

Pyspark 如何获取两个时间戳之间的时间差,pyspark,Pyspark,我尝试了下面的代码,它给我-55作为以上2个时间戳之间的差异。应该给我5分钟。在pyspark中是否有任何直接功能可以获得正确的时差 导入pyspark.sql.F函数 #ts1:=2019-11-07T22:00:00.000+0000 #ts2:=2019-11-07T21:55:00.000+0000 df.带列(“时间差”,F.minute(“时间戳”)-F.minute(“时间戳”)) 没有给我正确的答案。请提供帮助。您可以使用以下功能以秒为单位获取时差: from pyspark.

我尝试了下面的代码,它给我-55作为以上2个时间戳之间的差异。应该给我5分钟。在
pyspark
中是否有任何直接功能可以获得正确的时差

导入pyspark.sql.F函数
#ts1:=2019-11-07T22:00:00.000+0000
#ts2:=2019-11-07T21:55:00.000+0000
df.带列(“时间差”,F.minute(“时间戳”)-F.minute(“时间戳”))

没有给我正确的答案。请提供帮助。

您可以使用以下功能以秒为单位获取时差:

from pyspark.sql.functions import *
diff_secs_col = col("time_stamp").cast("long") - col("time_stamp2").cast("long")
然后计算几分钟。你能试试这个吗

import pyspark.sql.functions as F
import pyspark.sql.types as Types
df = df.withColumn('t1_unix', F.unix_timestamp(df.t1, "yyyy-MM-dd'T'HH:mm:ss.SSS"))
df = df.withColumn('t2_unix', F.unix_timestamp(df.t2, "yyyy-MM-dd'T'HH:mm:ss.SSS"))
df = df.withColumn('diff', ((df.t1_unix-df.t2_unix)/60).cast(Types.IntegerType()))

我使用上面的函数得到空值:df.withColumn(“time_diff”,col(“time_stamp2”).cast(“long”)-col(“time_stamp”).cast(“long”).show()+------------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------百分比Unixtime2 |星期一|主机名|小时日| kpi |名称| kpi |子类型|时间戳|时间戳|时间戳|时间差| 60.0 | 1573370;21 | XXX…| 2019-11-07T21:55:…| 2019-11-07T22:00:…| null |不要使用该选项。只需使用我添加的一个,它不会显示任何值:>>>diff_secs_col=col(“时间戳”).cast(“long”)-col(“时间戳”).cast(“long”)>>>>>>diff_secs_col列