[英]Creating, adding and using a UDF in Hive
我已經編寫了一個示例UDF來從hive中的表中修剪字符串:
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_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
可以幫忙嗎? 提前致謝!
配置單元UDF必須包含名為evaluate
函數。 重命名名為trim
的函數trim
evaluate
公共文本評估(文本incomingData)
注意 : String trimmed
不需要作為類成員。 您可以將其移動為局部變量。
package anoop;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class DataTrim extends UDF{
public Text evaluate(Text incomingData){
String trimmed;
trimmed= incomingData.toString().trim();
return new Text(trimmed);
}
}
有關更多信息,請參閱本教程
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.