PySpark: вычесть две метки времени и вернуть разницу в минутах (использование F.datediff возвращает только целые дни) - PullRequest
0 голосов
/ 29 января 2019

У меня есть следующий пример данных.Столбцы date_1 и date_2 имеют тип данных отметки времени.

ID  date_1                      date_2                      date_diff
A   2019-01-09T01:25:00.000Z    2019-01-10T14:00:00.000Z    -1
B   2019-01-12T02:18:00.000Z    2019-01-12T17:00:00.000Z    0

Я хочу найти разницу между date_1 и date_2 в минутах.

Когда я использую код ниже, он дает мне столбец date_diff во всем целом числезначения (дни):

df = df.withColumn("date_diff", F.datediff(F.col('date_1'), F.col('date_2')))  

Но я хочу, чтобы date_diff учел метку времени и вернул мне минуты назад.

Как мне это сделать?

1 Ответ

0 голосов
/ 29 января 2019

Просто преобразуйте метки времени в метки времени Unix (секунды с начала эпохи), вычислите разницу и разделите на 60.

Например:

import pyspark.sql.functions as F
df.withColumn(
    "date_diff_min", 
    (F.col("date_1").cast("long") - F.col("date_2").cast("long"))/60.
).show(truncate=False)
...