0

如何转换此日期:

Dec 30, 2013

采用 hive 中的“YYYY-MM-DD”格式:

2013-12-30

我可以做explode 和concat 来匹配给定的格式,但是将Dec 转换为12 是有问题的。

4

2 回答 2

1

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

于 2014-04-20T00:44:00.420 回答
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);
}

希望这可以帮助...!!!

于 2014-04-11T06:45:18.523 回答