簡體   English   中英

在Hive中創建,添加和使用UDF

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM