[英]Spark 2.3 (Scala) - Convert a timestamp column from UTC to timezone specified in another column
[英]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.