我编写了一个示例udf,用于从配置单元中的表中修剪字符串:
package anoop;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class DataTrim extends UDF{
String trimmed;
public Text trim(Text incomingData){
trimmed= incomingData.toString().trim();
return new Text(trimmed);
}
}
我为这个“trim\u string.jar”创建了一个jar,并将其保存到hive lib文件夹中。现在我运行以下命令:
add jar '~/hive-1.2.1/lib/trim_string.jar'; (success)
现在我跑了
create temporary function trimmed1 as 'anoop.DataTrim';
但我得到了以下错误:
FAILED: Class anoop.DataTrim does not implement UDF, GenericUDF, or UDAF
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.FunctionTask
有人能帮忙吗?提前谢谢!
1条答案
按热度按时间jk9hmnmh1#
配置单元udf必须包含名为
evaluate
. 重命名名为trim
至evaluate
公共文本评估(文本输入数据)注:
String trimmed
作为班级成员是不必要的。你可以把它作为一个局部变量。有关更多信息,请参阅本教程