SemanticException [错误10014] Hive UDF

时间:2018-05-15 12:25:08

标签: java hadoop hive user-defined-functions

我在eclipse中使用apache hive和UDF函数创建。所以当我在我的SQL查询中调用该函数时,我看到了这个错误:

失败:SemanticException [错误10014]:第1行:7错误的参数'摘要':类HiveUDF.TokenizeString与(字符串)没有匹配的方法。可能的选择:

问题出在哪里?

UDF CLASS

package HiveUDF;
public class TokenizeString extends UDF {

public List<String> tokenize (Text text) {
    List<String> prova = new ArrayList<String>();
    if(text == null)
        return null;
    String[] words = text.toString().split("\\n");
    for (String w : words)
        prova.add(w);
    return prova;
}

}

SQL TABLE AND QUERY

id                      bigint                                      
productid               string                                      
userid                  string                                      
profilename             string                                      
helpfulnessnumerator    int                                         
helpfulnessdenominator  int                                         
score                   float                                       
time                    int                                         
summary                 string                                      
text                    string

CREATE TEMPORARY FUNCTION tokenize_summary as 'HiveUDF.TokenizeString';

select tokenize_summary(summary) from amazonproduct;

2 个答案:

答案 0 :(得分:0)

扩展UDF类时,您必须重写validate(-)方法。

答案 1 :(得分:0)

package HiveUDF;
public class TokenizeString extends UDF {
public List<String> evaulate (Text text) {
    List<String> prova = new ArrayList<String>();
    if(text == null)
        return null;
    String[] words = text.toString().split("\\n");
    for (String w : words)
        prova.add(w);
    return prova;
}
}

尝试一下...

相关问题