Я создал функцию java, которая создает автоматическое инкрементное значение, и я создал UUF для улья на основе этой функции, он отлично работает в улье. Я создал Impala UDF на основе этой функции, и он возвращает «null» вместо автоматического инкрементного целого.Autoincrement UDF работает в улье, но возвращает null в Impala
Вот код 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;
}
}
Создание улей UDF:
create function autoincr as 'AutoIncrementUDF';
Создание Impala UDF:
create function autoincr() returns int LOCATION '/user/acombs/AutoIncrementUDF.jar' symbol='AutoIncrementUDF';
Используя его в улей и Impala:
select autoincr() as testkey, * from mapfund
Любая помощь очень ценится! Спасибо, Anna