有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java配置单元UDF:无法执行求值方法

尝试运行包含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);
    }
}

共 (0) 个答案