Java 将配置单元UDF与hiveconf变量一起使用
我有一个Hive UDF,它返回给定IP的IP范围,它看起来像这样:Java 将配置单元UDF与hiveconf变量一起使用,java,hive,hiveql,udf,Java,Hive,Hiveql,Udf,我有一个Hive UDF,它返回给定IP的IP范围,它看起来像这样: public class IPToRangeUDF extends UDF { ... ... public String evaluate(String ip,Integer option) throws Exception{ ... ... } } 基本上基于选项,我从范围返回特定的内容 现在,在正确添加jar并创建函数后,尝试在配置单元中使用此UDF时:
public class IPToRangeUDF extends UDF {
...
...
public String evaluate(String ip,Integer option) throws Exception{
...
...
}
}
基本上基于选项,我从范围返回特定的内容
现在,在正确添加jar并创建函数后,尝试在配置单元中使用此UDF时:
ADD JAR <jar path here>/myJAR.jar;
CREATE TEMPORARY FUNCTION ipToRange AS 'IPToRangeUDF';
当我尝试使用hiveconf变量作为IP时,问题就出现了。例如:
SET IP='99.67.53.221';
select count(*) from myTable where ip>=ipToRange(${hiveconf:IP},0);
查询未运行,并出现以下异常:
FAILED: SemanticException [Error 10014]: Line 1:56 Wrong arguments '0':
org.apache.hadoop.hive.ql.metadata.HiveException:
Unable to execute method public java.lang.String
IPToRangeUDF.evaluate(java.lang.String,java.lang.Integer)
throws java.lang.Exception on object IPToRangeUDF@1b8a29df of class
IPToRangeUDF with arguments {99.67.53.221:java.lang.String, 0:java.lang.Integer} of size 2
欢迎提供任何帮助/建议
FAILED: SemanticException [Error 10014]: Line 1:56 Wrong arguments '0':
org.apache.hadoop.hive.ql.metadata.HiveException:
Unable to execute method public java.lang.String
IPToRangeUDF.evaluate(java.lang.String,java.lang.Integer)
throws java.lang.Exception on object IPToRangeUDF@1b8a29df of class
IPToRangeUDF with arguments {99.67.53.221:java.lang.String, 0:java.lang.Integer} of size 2