1

我有一个 CSV 文件,其中包含以下格式的日期和时间戳值。例如:

Col1|col2
01JAN2019|01JAN2019:17:34:41

但是,当我在 create 语句中将 Col1 定义为 Date 并将 Col2 定义为 Timestamp 时,Hive 表NULL会在我查询时简单地返回。

CREATE EXTERNAL TABLE IF NOT EXISTS my_schema.my_table
(Col1 date,
Col2 timestamp)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘|’
STORED AS TEXTFILE
LOCATION 'my_path';

相反,如果我简单地定义数据类型,string那么它就可以工作。但这不是我希望我的桌子的样子。

我希望表能够以正确的类型读取传入的数据。我怎样才能做到这一点?是否可以用CREATE语句本身定义传入数据的预期数据格式?

有人可以帮忙吗?

4

1 回答 1

1

从 Hive 1.2.0 开始,可以提供额外的 SerDe 属性"timestamp.formats"。有关更多详细信息,请参阅此 Jira:HIVE-9298

ALTER TABLE timestamp_formats SET SERDEPROPERTIES ("timestamp.formats"="ddMMMyyyy:HH:mm:ss");
于 2019-10-22T10:03:18.980 回答