#java #hive #hiveql
Вопрос:
Получение исключения ниже при попытке выполнить запрос hive, который имеет UDF
select transform_date(source_timestamp, source_tz, dest_tz, day_light_saving) from sourcetable;
Все поля являются строковыми.
Failed with exception java.io.IOException:org.apache.hadoop.hive.ql.metadata.HiveException:
Unable to execute method public java.lang.String hive_timezone.TimezoneConvertorUDF.evaluate(java.lang.String,java.lang.String,java.lang.String,java.lang.String)
on object hive_timezone.TimezoneConvertorUDF@656842bc of class hive_timezone.TimezoneConvertorUDF
with arguments {2020-5-15 09:15:000:java.lang.String, UTC:java.lang.String, 025:java.lang.String, Y:java.lang.String} of size 4
Time taken: 0.135 seconds
public class TimezoneConvertorUDF extends UDF{
public final static DateTimeFormatter HIVE_DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:s");
public String evaluate(String sourceDateStr, String sourceTz, String destTz, String honorDST) {
return convert(sourceDateStr,sourceTz, destTz, honorDST).format(HIVE_DATE_FORMATTER);
}
}