取消
顯示的結果
而不是尋找
你的意思是:

to_utc_timestamp減去一個不同的時間三角洲和from_utc_timestamp不是添加相同的三角洲。

rahullalwani25
新的貢獻者二世

我的會話時區是澳大利亞/悉尼

如果我運行下麵的查詢我的期望是第一列和第三列應該顯示相同的值。但它並不像預期的那樣工作了1753-01-01就是時間戳。

spark.conf.set (“spark.sql.session。時區”、“澳大利亞/悉尼”)

選擇“1753-01-01 00:0:00”original_timestamp to_utc_timestamp(“1753-01-01 00:0:00”,“澳大利亞/悉尼”)to_utc_from_aest, from_utc_timestamp (to_utc_timestamp(“1753-01-01 00:0:00”、“澳大利亞/悉尼”),“澳大利亞/悉尼”)from_utc_to_aest

UNION all

選擇“2023-01-01 00:0:00”,to_utc_timestamp(“2023-01-01 00:0:00”、“澳大利亞/悉尼”),from_utc_timestamp (to_utc_timestamp(“2023-01-01 00:0:00”,“澳大利亞/悉尼”),“澳大利亞/悉尼”)

image.png

4回複4

Kaniz
社區經理
社區經理

嗨@Rahul Lalwani,這個問題你麵對時間戳的1753-01-01就是與火花支持的日期範圍的限製。火花的默認日期範圍從1900年開始,和任何更早的日期可能不準確的處理。

您可以使用一個不同的時間戳在火花支持的日期範圍來解決這個限製。這裏有一個更新版本的查詢,使用“1900-01-01就是”而不是“1753-01-01就是”:

spark.conf.set (“spark.sql.session。時區”、“澳大利亞/悉尼”)SELECT '1900-01-01 00:00:00' AS original_timestamp, to_utc_timestamp('1900-01-01 00:00:00', 'Australia/Sydney') AS to_utc_from_aest, from_utc_timestamp(to_utc_timestamp('1900-01-01 00:00:00', 'Australia/Sydney'), 'Australia/Sydney') AS from_utc_to_aest UNION ALL SELECT '2023-01-01 00:00:00', to_utc_timestamp('2023-01-01 00:00:00', 'Australia/Sydney'), from_utc_timestamp(to_utc_timestamp('2023-01-01 00:00:00', 'Australia/Sydney'), 'Australia/Sydney')

通過使用“1900-01-01”就是,您應該看到第一和第三列結果顯示相同的值。

rahullalwani25
新的貢獻者二世

你好Kaniz,

這是工作到1896-01-01就是排除了火花的支持日期範圍的問題。

其次我不需要精確的時間戳但是時間δ減去to_utc_timestamp應該確切的值被添加到from_utc_timestamp反之亦然但片段可以看到有5分鍾+ -的問題。

image.png

注:它工作正常工作集群和sql倉庫。這個問題隻有在集群互動。

Vartika
主持人
主持人

嗨@Rahul Lalwani,

做@Kaniz Fatma的反應回答了你的問題?如果是的,你會很高興它標記為最好,其他成員可以找到解決方案更快嗎?其他的請讓我們知道如果你需要更多的幫助。

謝謝!

Pavithra_R
新的貢獻者二世

嗨@Rahul Lalwani(客戶),

在集群spark.sql.datetime.java8API互動。當我們允許啟用被禁用spark.sql.datetime.java8API。啟用為true,我們可以看到crt值1753-01-01。

使上述配置的原因是因為在日期和時間戳字符串解析通過使用Java 8次API和火花的會話時區。在改變之前,收集日期/時間戳值作為遺產類型“java.sql.Date”/“java.sql。時間戳”,這種類型的值不尊重配置的spark.sql.session.timeZone”。有一致的視圖,用戶必須保持JVM時區和火花的會話時區同步。

圖像所以請支持spark.sql.datetime.java8API。能真正的正確的時間格式。

5分鍾的差異的原因是由於時區的標準化,直到1895年,抵消UTC + 10:05帖子,我。從1896年開始偏移量是UTC + 10點。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map