如何转换此日期:
Dec 30, 2013
采用 hive 中的“YYYY-MM-DD”格式:
2013-12-30
我可以做explode 和concat 来匹配给定的格式,但是将Dec 转换为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);
}
希望这可以帮助...!!!