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