Hive 3.1“带有本地时区的时间戳”问题

问题描述

我们尝试使用Hive 3.1.1“带有本地时区的时间戳”功能,但是当我们尝试创建这样的表时:

create table t3
(ts timestamp with local time zone)
stored as parquet
location '/data/t3';

我们收到错误java.lang.UnsupportedOperationException: UnkNown field type: timestamp with local time zone('Europe/Moscow') 即Hive可以正确确定时区,但无法创建具有此类字段的表格。

我们如何解决这个问题?

解决方法

使用to_utc_timestamp标准化时间戳记(转换为UTC)

to_utc_timestamp(timestamp_column,'Europe/Moscow')

并将其存储为timestamp