apache-spark - 我们如何使用 PySpark SQL 在分钟内找到 2 个时间戳差异?
问题描述
SQL: DATEDIFF(mi, ClockInUTC_End,ClockInUTC_Snd) TimeinMinutes
我想在 PySpark SQL 中替代它。火花.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 |
+-------------------+-------------------+---------------+
推荐阅读
- entity-framework - 在表中删除和插入,使用 asp.net 核心中的实体框架删除以前的数据
- python - 如何在机器学习中使用不同的数据集测试我的模型
- dart - 将函数传递给 dart 中的注释
- python - django.db.utils.IntegrityError:插入或更新表“authtoken_token”违反外键约束
- c# - if 语句中的多个方法调用如何工作?
- python - Python Tkinter 将窗口宽度更改为最长文本
- spring-boot - spring.flyway.init-sqls 是否工作(如预期)?
- google-data-studio - 按客户显示最高销售额的月份和价值
- .net - Cybersource 发布请求总是得到会话超时
- sql - 查找来自两个不同数据库的两个相同表中写入的数据总数