Scala比较数据框中的时间列

时间:2018-04-16 07:56:13

标签: apache-spark

我有一个包含两列的数据框' time1'和' time2'格式为:" hh:mm:ss"

我想创建一个新列,它是&time;' time1'和' time2'。

我试过这个:

 df.withColumn("diff",
                  datediff(
                         to_timestamp($"time1", "hh:mm:ss"),
                         to_timestamp($"time2", "hh:mm:ss")
                          )
            )

但它总是为diff返回0。这样做的正确方法是什么?

数据样本:

time1, time2
05:35:30, 05:35:12
07:30:55, 02:39:10
08:35:30, 09:36:10
04:35:30, 05:33:50

1 个答案:

答案 0 :(得分:2)

首先,格式应为" HH:mm:ss" 第二个约会者只返回天数差异

所以如果你想在几分钟内做差异:

df.withColumn("diffs", 
     (to_timestamp('time1, "HH:mm:ss").cast("bigint") - to_timestamp('time2, "HH:mm:ss")
         .cast("bigint")) / lit(60))