簡體   English   中英

Hive 表和數據塊增量表之間的時間戳數據值不同

[英]Timestamp data value different between Hive tables and databricks delta tables

我們已經完成了從 Hive 到 ADLS 的數據二進制副本,並驗證了校驗和。 雖然每個數據類型的值都匹配,但時間戳數據類型列顯示 Hive 和 Delta(Azure Databricks) 表之間的值變化。

select abcdtstmp from  xyz.abc where mn_ID = "sdsdsd-7878-0016" 
2018-01-16 00:00:00.0 (on prem)
select abcdtstmp from  xyz.abc where mn_ID = "sdsdsd-7878-0016" 
2018-01-16T05:00:00.000+0000(DBX)

雖然校驗和和所有驗證確實匹配,但是在“T”之后添加的一些值引起了關注。 任何建議都會有所幫助

這似乎與timezone和hive有關。
Hive一直認為Parquet文件中的時間戳是UTC格式的,輸出的時候會轉換成本地系統時間(集群主機時間)。 因此,即使您將數據從 EST 傳輸到 EST,它的 hive 也是罪魁禍首。

如果您的 hive 版本高於 1.2,您可以點擊此鏈接 - https://issues.apache.org/jira/browse/HIVE-9482設置hive.parquet.timestamp.skip.conversion=true否則,您需要手動轉換數據返回 EST 或您想要使用的任何時區低於 sql。

from_utc_timestamp(to_utc_timestamp(my_dt_tm,'America/New_York'),'America/Denver') AS local_time

暫無
暫無

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

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