Я смог сделать эту работу со следующими UDF / UDA.Это можно рассматривать как агрегатор множеств общего назначения, если кому-то еще это понадобится в будущем:
CREATE OR REPLACE FUNCTION agg_set_func(state tuple<int, set<bigint>>, val set<bigint>) CALLED ON NULL INPUT RETURNS tuple<int, set<bigint>> LANGUAGE java AS
$$
if (val == null) {
return state;
}
Set<Long> s = state.getSet(1, Long.class);
s.addAll(val);
state.setSet(1, s);
return state;
$$;
CREATE OR REPLACE FUNCTION agg_set_func_final(state tuple<int, set<bigint>>) CALLED ON NULL INPUT RETURNS set<bigint> LANGUAGE java AS
$$
return state.getSet(1, Long.class);
$$;
CREATE AGGREGATE agg_set(set<bigint>)
SFUNC agg_set_func
STYPE tuple<int, set<bigint>>
FINALFUNC agg_set_func_final
INITCOND (0,{});