【发布时间】:2014-04-10 15:10:55
【问题描述】:
我如何转换这个日期:
Dec 30, 2013
hive 中的格式为“YYYY-MM-DD”:
2013-12-30
我可以进行分解和连接以匹配给定的格式,但是将 12 月转换为 12 是有问题的。
【问题讨论】:
我如何转换这个日期:
Dec 30, 2013
hive 中的格式为“YYYY-MM-DD”:
2013-12-30
我可以进行分解和连接以匹配给定的格式,但是将 12 月转换为 12 是有问题的。
【问题讨论】:
UDF 是在 hive 或 impala 中进入的方式,但是如果您在 HDFS 中加载数据之前定义了 ETL,建议让 ETL 进行日期转换。以 YYYY-MM-DD 格式存储日期很重要,以便在 hive 或 impala 中利用 TO_DATE()
【讨论】:
如果您所有的日期都是这种格式,那么您可以编写一个 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);
}
希望这会有所帮助...!!!
【讨论】: