簡體   English   中英

在spark scala中將時間戳列從UTC轉換為EST

[英]Convert timestamp column from UTC to EST in spark scala

我在時間戳類型的 spark 數據框中有一列日期格式為 '2019-06-13T11:39:10.244Z' 我的目標是將此列轉換為保持相同格式的 EST 時間(減去 4 小時)。 我嘗試使用 from_utc_timestamp api 但它似乎正在將 UTC 時間轉換為我的本地時區 (+5:30) 並將其添加到時間戳,然后從中減去 4 小時。 我嘗試使用 Joda 時間,但由於某種原因,它在美國東部時間增加了 33 天

輸入 = 2019-06-13T11:39:10.244Z

使用 from_utc_timestamp api:

val tDf = df.withColumn("newTimeCol", to_utc_timestamp(col("timeCol"), "America/New_York"))

輸出 = 2019-06-13T13:09:10.244Z+5:30

使用 Joda 時間包:

   val coder : (String => String) = (arg: String) => {
     new DateTime(arg, DateTimeZone.UTC).minusHours(4).toString("yyyy-mm-dd'T'HH:mm:s.SS'Z'")}
   val sqlfunc = udf(coder)
   val tDf = df.withColumn("newTime", sqlfunc(col("_c20")))

輸出 = 2019-39-13T07:39:10.244Z

所需輸出 = 2019-06-13T07:39:10.244Z

請告知我應該如何進行。 提前致謝

創建輸出時,格式字符串中存在拼寫錯誤。

您的格式字符串應該是 yyyy- MM -dd'T'HH:mm:s.SS'Z' 但它是 yyyy- mm -dd'T'HH:mm:s.SS'Z'。

mm是分鍾的格式字符,而MM是月份的格式字符。 您可以在此處查看所有格式字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM