Hive 有没有办法在配置单元CREATE TABLE语句本身中为传入数据指定日期/时间戳格式?

Hive 有没有办法在配置单元CREATE TABLE语句本身中为传入数据指定日期/时间戳格式?,hive,timestamp,hiveql,create-table,hiveddl,Hive,Timestamp,Hiveql,Create Table,Hiveddl,我有一个CSV文件,其中包含以下格式的日期和时间戳值。例如: Col1|col2 01JAN2019|01JAN2019:17:34:41 但是,当我在create语句中将Col1定义为Date,Col2定义为Timestamp时,当我查询时,配置单元表只返回NULL CREATE EXTERNAL TABLE IF NOT EXISTS my_schema.my_table (Col1 date, Col2 timestamp) ROW FORMAT DELIMITED FIELDS TER

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

Col1|col2
01JAN2019|01JAN2019:17:34:41
但是,当我在create语句中将Col1定义为Date,Col2定义为Timestamp时,当我查询时,配置单元表只返回
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
语句本身定义传入数据的预期数据格式


有人能帮忙吗

从Hive 1.2.0开始,可以提供附加的SerDe属性
“timestamp.formats”
。有关更多详细信息,请参阅此Jira:

ALTER TABLE timestamp_formats SET SERDEPROPERTIES ("timestamp.formats"="ddMMMyyyy:HH:mm:ss");