我创建了一个创建自动增量值的java函数,我还基于这个函数创建了一个hive UDF,它在hive中工作得很好。我基于这个函数创建了一个 Impala UDF,它返回“null”而不是自动增量整数。
这是Java UDF代码:
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.hive.ql.udf.UDFType;
@UDFType(stateful = true)
public class AutoIncrementUDF extends UDF {
int ctr;
public int evaluate() {
ctr++;
return ctr;
}
}
创建 Hive UDF:
create function autoincr as 'AutoIncrementUDF';
创建 Impala UDF:
create function autoincr() returns int LOCATION '/user/acombs/AutoIncrementUDF.jar' symbol='AutoIncrementUDF';
在 Hive 和 Impala 中使用它:
select autoincr() as testkey, * from mapfund
非常感谢任何帮助!谢谢你,安娜