Hive UDF String to Date Convertion

时间:2015-09-21 07:33:19

标签: date hadoop casting hive

Hive包含一个表"样本"以下数据:

15-06-2015
15-06-2015
15-06-2015
15-06-2015
15-06-2015
15-06-2015
16-06-2015

使用以下查询我将String类型的数据转换为Hive Date格式:

select TO_DATE(from_unixtime(UNIX_TIMESTAMP(date,'DD-MM-YYYY'))) from sample;

输出如下:

0   2014-12-28
1   2014-12-28
2   2014-12-28
3   2014-12-28
4   2014-12-28
5   2014-12-28
6   2014-12-28

输出与预期输出不同。

请建议如何获得预期的输出,如:

2015-06-15
2015-06-15
2015-06-15
2015-06-15
2015-06-15
2015-06-15
2015-06-16

2 个答案:

答案 0 :(得分:2)

您的问题是HiveQL通常不区分大小写,但unix_timestamp函数的第二个参数是区分大小写。因此,查询的正确语法是:

select TO_DATE(from_unixtime(UNIX_TIMESTAMP(date,'dd-MM-yyyy'))) from sample;

通过这种方式,您将获得预期的结果。

答案 1 :(得分:0)

只是一个错字,模式应该是dd-MM-yyyy