这是我的Hive自定义项。我的类和方法对我来说似乎很好,第一个方法也可以工作,但当我发出hive命令时,第二个方法就不行了 select to_upper('','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();
}
}
我得到以下错误:
![](https://i.stack.imgur.com/YzPsL.jpg)
谁能告诉我哪里出了问题吗?
1条答案
按热度按时间8iwquhpp1#
错误明确地说,没有带(string,string)参数的evaluate函数。你的程序有两个求值函数-一个是字符串,另一个是文本和字符串。试着把第二个改成string,string。