【问题标题】:How do I do date diff in a spark sql environment?如何在 spark sql 环境中进行日期差异?
【发布时间】:2019-08-28 14:56:48
【问题描述】:

我有一张表格,上面有创建日期和操作日期。我想获得两个日期之间的分钟数。我查看了文档,但找不到解决方案。

%sql
SELECT datediff(creation_dt, actions_dt)
FROM actions
limit 10

这给了我两个日期之间的天数。一条记录看起来像

2019-07-31 23:55:22.0  |  2019-07-31 23:55:21 | 0

如何获取分钟数?

【问题讨论】:

标签: sql scala apache-spark apache-spark-sql


【解决方案1】:

如 cmets 中所述,如果您使用的是 Spark 或 Pyspark,那么 withColumn 方法是最好的。

但是

如果你使用的是 SparkSQL 环境,那么你可以使用 unix_timestamp() 函数来获得你需要的东西

select ((unix_timestamp('2019-09-09','yyyy-MM-dd') - unix_timestamp('2018-09-09','yyyy-MM-dd'))/60);

用您的列名交换日期,并将您的日期模式定义为参数。

两个日期都转换为秒并取差值。然后我们除以 60 得到分钟。

525600.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多