配置单元udf的语义异常错误我正试着用倒转一根弦来测试

50few1ms  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(388)

这是我的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)
谁能告诉我哪里出了问题吗?
8iwquhpp

8iwquhpp1#

错误明确地说,没有带(string,string)参数的evaluate函数。你的程序有两个求值函数-一个是字符串,另一个是文本和字符串。试着把第二个改成string,string。

相关问题