在hive中转换日期格式

时间:2014-04-10 15:10:55

标签: hadoop hive impala

如何转换此日期:

Dec 30, 2013

,格式为'YYYY-MM-DD'格式:

2013-12-30

我可以做爆炸和连接以匹配给定的格式,但将Dec转换为12是个问题。

2 个答案:

答案 0 :(得分:1)

UDF是进入配置单元或impala的方法,但是如果在HDFS中加载数据之前定义了ETL,建议让ETL执行日期转换。以YYYY-MM-DD格式存储日期非常重要,以便在hive或impala中利用TO_DATE()

答案 1 :(得分:0)

如果您的所有日期都是这种格式,那么您可以编写一个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);
}

希望这有助于...... !!!