Hive 配置单元创建时间戳格式为AM/PM的查询

Hive 配置单元创建时间戳格式为AM/PM的查询,hive,hiveql,Hive,Hiveql,我有一个只有一个日期列的文件,其中包含格式为“10/2/2017 10:56:00 AM”的日期。 我想在此文件上创建一个外部配置单元表,但由于AM/PM格式的配置单元时间戳无法识别它,任何指向此的指针?您可以创建具有时间戳格式的配置单元表,然后在表属性中映射数据时间戳格式 示例: 我有一个txt文件,其中包含以下数据: bash$ cat t1.txt 9/1/2016 11:31:21 AM 10/2/2017 10:56:00 AM 使用以下内容创建配置单元表:

我有一个只有一个日期列的文件,其中包含格式为“10/2/2017 10:56:00 AM”的日期。


我想在此文件上创建一个外部配置单元表,但由于AM/PM格式的配置单元时间戳无法识别它,任何指向此的指针?

您可以创建具有时间戳格式的配置单元表,然后在
表属性
中映射数据时间戳格式

示例:

我有一个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  |
+------------------------+--+

您可以使用时间戳格式创建配置单元表,然后在
表属性中映射数据时间戳格式

示例:

我有一个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  |
+------------------------+--+

不使用时间戳作为数据类型,您可以使用字符串作为数据类型并尝试它

而不使用时间戳作为数据类型,您可以使用字符串作为数据类型并尝试它

好的。在我看来,您的数据类型是时间戳还是字符串格式都不会有太大的区别。因为无论您试图通过使用时间戳格式我们也可以使用字符串格式实现

好的。在我看来,无论您的数据类型是使用时间戳格式还是使用字符串格式,都不会有多大区别。因为无论您尝试使用时间戳格式实现什么,我们都可以使用字符串格式实现

谢谢回复,它可以工作,但列的数据类型是我希望的字符串timestamp@MaheshJ,您的
源数据字段值是否包含在“”(双引号)中?
,则您不能定义为
时间戳
格式,除非您使用
Regex-serde
排除“”(双引号)
并仅捕获
时间戳
值。感谢回复,它可以工作,但列的数据类型是我希望的字符串timestamp@MaheshJ,您的
源数据字段值是否包含在“”(双引号)中?
,除非使用
Regex-serde
exclude”“(双引号)
并仅捕获
timestamp
值,否则不能将其定义为
timestamp
格式。