首页 > 解决方案 > 我们如何使用 PySpark SQL 在分钟内找到 2 个时间戳差异?

问题描述

SQL: DATEDIFF(mi, ClockInUTC_End,ClockInUTC_Snd) TimeinMinutes

我想在 PySpark SQL 中替代它。火花.sql("")

标签: apache-sparkpysparkapache-spark-sqlbigdatapyspark-sql

解决方案


您可以使用 unix_timestamp 函数来执行此操作,该函数基本上转换为 UTC 中的 UNIX 纪元值。请参考下面的代码。

spark.sql("""
SELECT  "2019-12-18 06:30:00" AS ClockInUTC_End,
        "2019-12-18 06:00:00" AS ClockInUTC_Snd, 
        CAST((unix_timestamp("2019-12-18 06:30:00", "yyyy-MM-dd HH:mm:ss") 
                - unix_timestamp("2019-12-18 06:00:00", "yyyy-MM-dd HH:mm:ss"))/60 AS INT) AS Diff_In_Minutes  
""").show(20,False)


Output :
+-------------------+-------------------+---------------+
|ClockInUTC_End     |ClockInUTC_Snd     |Diff_In_Minutes|
+-------------------+-------------------+---------------+
|2019-12-18 06:30:00|2019-12-18 06:00:00|30             |
+-------------------+-------------------+---------------+

推荐阅读