这是我的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();
}
}
答案 0 :(得分:1)
错误清楚地表明,没有带有(String,String)参数的evaluate函数。您的程序有2个评估函数 - 一个使用String,另一个使用Text和String。尝试将第二个更改为String,String。