在hive中存储iso-8601时间戳

ncecgwcz  于 2021-05-27  发布在  Hadoop
关注(0)|答案(0)|浏览(531)

堆叠-
hdp 3.1.0.0Hive3.1.0
尝试在orcHive表中存储时间戳,如2020-01-03t02:46:21.148+02:00。
使用timestamp数据类型存储时间戳将在查询时提供null,这是预期的,因为这不是hive期望的时间戳格式。
但是根据文档,如果我们设置了适当的时间戳格式serde属性,那么hive应该能够读取时区。
“在表级别上,通过向serde属性”timestamp.formats“提供格式,可以支持其他时间戳格式(从版本1.2.0起,hive-9298)。例如,yyyy-mm-dd't'hh:mm:ss.sss,yyyy-mm-dd't'hh:mm:ss。“
但是,尽管alter table set serdeproperties(“timestamp.formats”=“yyyy-mm-dd't'hh:mm:ss.sssxx”);属性似乎没有任何效果,而hive仍然无法读取它。我尝试了多种不同的格式,但都不起作用。
将表创建为textfile也没有帮助。
复制-
创建表default.test\u tz(tt timestamp)存储为orc;插入default.test_tz值(“2020-01-03t02:46:21.148+02:00”),(“2017-02-16t11:24:29.000z”),(“2017-02-16 11:24:29”),(“2019-06-15t15:43:19”);alter table default.test_tz set serdeproperties(“timestamp.formats”=“yyyy-mm-dd't'hh:mm:ss.sssxx”);
我应该把它存储为字符串吗?在这种情况下,最佳做法是什么。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题