hadoop - Hive 查询从字符串中分别提取日期和时间

标签 hadoop hive hiveql

我需要从配置单元中的字符串列中提取日期和小时。

表: enter image description here

select TO_DATE(from_unixtime(UNIX_TIMESTAMP(dates,'dd/MM/yyyy'))) from dates;

output:

0016-01-01
0016-01-01

select TO_DATE(from_unixtime(UNIX_TIMESTAMP(dates,'hh'))) from dates;

output:

1970-01-01
1970-01-01

请告知如何从表列中单独获取日期和小时。

最佳答案

我已将数据样本更改为更合理的内容

with dates as (select explode(array('1/11/16 3:29','12/7/16 17:19')) as dates)

select  from_unixtime(unix_timestamp(dates,'dd/MM/yy HH:mm'),'yyyy-MM-dd')  as the_date
       ,from_unixtime(unix_timestamp(dates,'dd/MM/yy HH:mm'),'H')           as H
       ,from_unixtime(unix_timestamp(dates,'dd/MM/yy HH:mm'),'HH')          as HH

from    dates

+------------+----+----+
|  the_date  | h  | hh |
+------------+----+----+
| 2016-11-01 |  3 | 03 |
| 2016-07-12 | 17 | 17 |
+------------+----+----+

关于hadoop - Hive 查询从字符串中分别提取日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43576355/

相关文章:

hadoop - 如何在运行 MR 作业时找到存储和读取特定文件的数据节点?

ubuntu - InvalidProtocolBufferException:在Impala上连接到Hadoop 2.x.x

hadoop - 如何使用 ORC 存储 Hive 表以进行复杂查询?

hadoop - hive 中的 reducer 选择

sql - 复制的数据列未在Hive的目标表中分区

Maven - 测试中的不同依赖版本

hadoop - Hadoop-获取输入路径,Java API

mysql - hadoop/配置单元 :File is getting transforming into a directory

apache - apache hadoop,hbase和nutch组件分布,用于4个服务器集群

hadoop - 如何在Hive中将一天的数据填充到整周