Есть ли способ указать формат даты / времени для входящих данных в самом операторе Hive CREATE TABLE? - PullRequest
1 голос
/ 22 октября 2019

У меня есть файлы CSV, которые содержат значения даты и времени в следующих форматах. Например:

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

Но когда я определяю Col1 как дату, а Col2 как метку времени в моем операторе создания, таблицы 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?

Может кто-нибудь помочь?

1 Ответ

1 голос
/ 22 октября 2019

Начиная с Hive 1.2.0, можно предоставить дополнительное свойство SerDe "timestamp.formats". См. Этот Jira для более подробной информации: HIVE-9298

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