我有 2 列是從紀元格式轉換而來的:
val df2 = df1.withColumn("event_end_ts", from_unixtime($"end_ts"/1000, "yyyy/MM/dd hh:mm:ss:ss"))
.withColumn("event_start_ts", from_unixtime($"start_ts"/1000, "yyyy/MM/dd hh:mm:ss:ss"))
這給了我這個:
---------------------- ----------------------
|event_end_ts |event_start_ts |
---------------------- ----------------------
|2022/05/24 03:49:01:01|2022/05/24 03:48:50:50|
|2022/05/24 03:49:00:00|2022/05/24 03:48:51:51|
|2022/05/24 03:50:03:03|2022/05/24 03:49:05:05|
---------------------- ----------------------
現在,我正在嘗試獲取 2 列的持續時間。我試過這個,但它給出了一個空結果:
df2.withColumn("time_diff", (to_timestamp($"event_end_ts") - to_timestamp($"event_start_ts"))/3600)
uj5u.com熱心網友回復:
您需要LongType先將它們轉換為,如下所示:
df2.withColumn("time_diff", (to_timestamp($"event_end_ts").cast(LongType) - to_timestamp($"event_start_ts").cast(LongType))/3600)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/488039.html
標籤:数据框 斯卡拉 阿帕奇火花 apache-spark-sql
