我在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;
答案 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;
}
}
尝试一下...