Java 将配置单元UDF与hiveconf变量一起使用

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时:

我有一个Hive UDF,它返回给定IP的IP范围,它看起来像这样:

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