在 hive 中转换日期格式
Posted
技术标签:
【中文标题】在 hive 中转换日期格式【英文标题】:convert date format in hive 【发布时间】:2014-04-10 15:10:55 【问题描述】:我如何转换这个日期:
Dec 30, 2013
hive 中的格式为“YYYY-MM-DD”:
2013-12-30
我可以进行分解和连接以匹配给定的格式,但是将 12 月转换为 12 是有问题的。
【问题讨论】:
【参考方案1】:UDF 是在 hive 或 impala 中进入的方式,但是如果您在 HDFS 中加载数据之前定义了 ETL,建议让 ETL 进行日期转换。以 YYYY-MM-DD 格式存储日期很重要,以便在 hive 或 impala 中利用 TO_DATE()
【讨论】:
【参考方案2】:如果您所有的日期都是这种格式,那么您可以编写一个 UDF,将该列读取为字符串, 然后将日期转换为给定的格式。像这样的:
public String convertDate(String dt2) throws ParseException
SimpleDateFormat incommingDateFormat = new SimpleDateFormat("MMM dd, yyyy");
SimpleDateFormat convertedDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date dt = incommingDateFormat.parse(dt2);
return convertedDateFormat.format(dt);
希望这会有所帮助...!!!
【讨论】:
以上是关于在 hive 中转换日期格式的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Presto/Hive 中将日期格式 YYYY-MM-DD 转换为整数 YYYYMMDD?
[转] String to Date conversion in hive - 在 Hive 中各种字符串转换成日期格式