gpt4 book ai didi

azure - Hive 表和 databricks 增量表之间的时间戳数据值不同

转载 作者:行者123 更新时间:2023-12-02 06:35:43 25 4
gpt4 key购买 nike

我们已经完成了从 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否则,您需要使用下面的 SQL 手动将数据转换回 EST 或任何您想要的时区。

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

关于azure - Hive 表和 databricks 增量表之间的时间戳数据值不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75084020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com