在 hive 里,我可以用 explode
但在 Impala 身上怎么做呢?
我读了这篇文章,但仍然没有线索:
ApacheImpala中有没有一个函数与hive的“explode”函数等价?
这是我在配置单元中创建表的方式:
create table tb (arr_col array<string>)
insert into tb select array ('A','B') from (select 'temp') x
我的查询将给出错误:
select tb.arr_col from tb
..in select list returns a complex type 'ARRAY<STRING>'.
Only scalar types are allowed in the select list.
或者
select tb.arr_col.item from tb
ERROR: AnalysisException: Illegal column/field reference 'arr_col.item' with intermediate collection 'item' of type 'ARRAY<STRING>'
请告诉我最好的方法。谢谢
1条答案
按热度按时间xoshrz7s1#
这就是在impala中查询一个数组的方法,这个数组可能相当于explode
默认情况下,impala使用名称“item”来访问基本数组的元素。对于结构数组,需要更改要访问的字段的“item”。