Я прочитал все примеры на сайте, но ни один из них не работает для меня. Я добавил Brickhouse UDFS:
create temporary function collect_struct as 'brickhouse.udf.collect.CollectUDAF'
и
CREATE TEMPORARY FUNCTION collect AS 'brickhouse.udf.collect.CollectUDAF'
У меня есть примеры из оператора Hive SELECT для создания массива STRUCTS и
Данные выбора Hive в массив структур
Мой SQL:
create temporary function collect as 'brickhouse.udf.collect.CollectUDAF';
CREATE TABLE test ( <br>
house_id bigint,<br>
first_name string,<br>
last_name string<br>
);
INSERT INTO test VALUES<br>
(1,"Bob","jones"),<br>
(1,"Jenny","jones"),<br>
(2,"Sally","johnson"),<br>
(3,"John","smith"),<br>
(3,"Barb","smith");
select house_id<br>
,collect(named_struct("first_name", first_name, "last_name", last_name))<br>
from test<br>
group by house_id;
Я всегда получаю одну и ту же ошибку:
СБОЙ: ClassCastException
org.apache.hadoop.hive.serde2.objectinspector.StandardStructObjectInspector
не может быть приведен к
org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector
Есть идеи?