我正在嘗試將日期時間列的格式更改為 EpochTime 但我能找到的關于這個主題的所有內容是 Java.Time.Instant 或 getEpochSecond 以及所有與 java 相關的函式和所有內容,但我正在使用 Scala 并且我需要將日期時間格式更改為 EpochTime。
我的日期時間列示例:
2013-12-31T05:14:22
2013-12-31T16:49:31
2013-12-30T18:29:20
2013-12-30T21:02:29
我使用的日期時間格式:
“yyyy-MMM-dd-HH:mm:ss”
我嘗試過但給出了無法決議符號 getEpochSecond 錯誤的代碼:
val EpochTime: Long=dataDB.select("Date").getEpochSecond
uj5u.com熱心網友回復:
假設您的時間戳在格林威治標準時間,下面的代碼應該作業
val inputDF = Seq("2013-12-31T05:14:22","2013-12-31T16:49:31", "2013-12-30T18:29:20", "2013-12-30T21:02:29")
.toDF("timestamp")
import org.apache.spark.sql.functions._
val newDF = inputDF.withColumn("epoch", unix_timestamp(col("timestamp"), "yyyy-MM-dd'T'HH:mm:ss")) // change this timestamp format to offset date
newDF.show(false)
如果您在特定時區有時間戳,請使用以下代碼
val inputDF = Seq("2013-12-31T05:14:22","2013-12-31T16:49:31", "2013-12-30T18:29:20", "2013-12-30T21:02:29")
.toDF("timestamp")
import org.apache.spark.sql.functions._
val df2 = inputDF
.withColumn("timezone", lit("Australia/Sydney")) // Replace "Australia/Sydney by your timezone
.withColumn("time_utc",
expr("to_utc_timestamp(timestamp, timezone)")
)
val outputDF = df2.withColumn("epoch", unix_timestamp(col("time_utc"), "yyyy-MM-dd HH:mm:ss"))
outputDF.show(false)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358568.html
下一篇:如何在AkkaHttp中拆分路由
