当在Hive表中加载数据时,当我从Hive表中获取行时,所有日期列都为NULL。
我也只想获取日期,而不是时间戳,所以任何可能的解决方案。
答案 0 :(得分:0)
我建议您在表定义中的确以日期时间为列的字符串表示,并解析并转换为日期,例如,
select cast(regexp_extract('1989-09-26T09:00:00.000+05:30', '(\\d{4}-\\d{2}-\\d{2})T.*', 1) as date);
您也可以使用Hive宏来方便使用,例如
create temporary macro parse_date(ts string)
cast(regexp_extract(ts, '(\\d{4}-\\d{2}-\\d{2})T.*', 1) as date);
然后
select parse_date('1989-09-26T09:00:00.000+05:30');
答案 1 :(得分:0)
您可以使用Hive中的to_date函数仅从时间戳中提取日期
示例:
hive> select to_date('1989-09-26T09:00:00.000+05:30');
+-------------+--+
| _c0 |
+-------------+--+
| 1989-09-26 |
+-------------+--+