Hive UDF的语义异常错误。我试图通过反转一个字符串进行测试

时间:2015-12-13 00:44:46

标签: java class oop hadoop hive

这是我的Hive UDF。我的类和方法对我来说似乎很好,第一种方法也可以,但第二种方法不适用于我给出Hive命令select to_upper('abc','def');

package com.hive.udf;

import org.apache.hadoop.hive.ql.exec.UDF;
import org.w3c.dom.Text;

public class MyUpperUDF extends UDF {
    public MyUpperUDF(){
        System.out.println("Inside the constructor");
    }
    public String evaluate(String data){
        System.out.println("Inside the evaluate method");
        return data.toUpperCase();
    }
    public String evaluate(Text data1,String data2){
        System.out.println("Inside evaluate - concatenate & reverse method");
        String temp = data1.toString()+data2;
        StringBuffer sb = new StringBuffer(temp);
        return sb.reverse().toString();
    }

}

我收到以下错误: Error 谁能告诉我哪里出错了?

1 个答案:

答案 0 :(得分:1)

错误清楚地表明,没有带有(String,String)参数的evaluate函数。您的程序有2个评估函数 - 一个使用String,另一个使用Text和String。尝试将第二个更改为String,String。