我有以下示例数据框。 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 考虑时间戳并给我几分钟的时间。
我该怎么做呢?
最佳答案
只需将时间戳转换为 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)
关于python - PySpark:减去两个时间戳列并以分钟为单位返回差异(使用 F.datediff 仅返回一整天),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54411446/