有没有办法在hivecreatetable语句中为传入数据指定日期/时间戳格式?

q9rjltbz  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(354)

我有一个包含日期和时间戳值的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 那就行了。但我不希望我的table是这样的。
我希望表能够读取正确类型的传入数据。我怎样才能做到这一点?是否可以使用 CREATE 声明本身?
有人能帮忙吗?

o75abkj4

o75abkj41#

从hive 1.2.0开始,可以提供附加的serde属性 "timestamp.formats" . 更多详情请参见此jira:hive-9298

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

相关问题