【发布时间】:2018-11-22 12:35:38
【问题描述】:
我有一个文件,其中只有一个日期列,其中包含格式为 '10/2/2017 10:56:00 AM'
的日期我想在此文件上创建一个外部配置单元表,但由于 AM/PM 格式配置单元时间戳无法识别它,是否有指向此的指针?
【问题讨论】:
我有一个文件,其中只有一个日期列,其中包含格式为 '10/2/2017 10:56:00 AM'
的日期我想在此文件上创建一个外部配置单元表,但由于 AM/PM 格式配置单元时间戳无法识别它,是否有指向此的指针?
【问题讨论】:
您可以创建 具有时间戳格式的配置单元表,然后在 table properties 中映射您的数据时间戳格式。
示例:
我有一个包含以下数据的 txt 文件:
bash$ cat t1.txt
9/1/2016 11:31:21 AM
10/2/2017 10:56:00 AM
使用以下命令创建一个配置单元表:
hive> create external table i(ts timestamp)
row format delimited
fields terminated by ','
stored as textfile
TBLPROPERTIES("timestamp.formats"="MM/dd/yyyy hh:mm:ss a");
从表格中选择:
hive> select * from i;
+------------------------+--+
| i.ts |
+------------------------+--+
| 2016-09-01 11:31:21.0 |
| 2017-10-02 10:56:00.0 |
+------------------------+--+
【讨论】:
source data field value is enclosed in ""(double quotes)? ,那么你不能定义为 timestamp 格式,除非你使用 Regex serde 到 exclude ""(double quotes) 并只捕获 @987654329 @值。
您可以使用字符串作为数据类型,而不是使用时间戳作为数据类型并尝试一下
【讨论】:
好的。在我看来,无论您的数据类型是时间戳还是字符串格式,它都不会产生太大影响。因为无论您尝试使用时间戳格式来实现什么,我们也可以使用字符串格式来实现
【讨论】: