Arrays 查询配置单元中的集合(如果包含)

Arrays 查询配置单元中的集合(如果包含),arrays,hive,hiveql,Arrays,Hive,Hiveql,我有下面的,这给了我一套在蜂箱里 collect_set(quotaname) 样本输出: ["Quota1", "Quota2"] 我曾尝试使用contains或LIKE运算符,但我不知道如何说如果集合中的最后一项=X,那么… 有人能给我建议吗?您可以使用数组\u contains: hive> select array_contains(array("Quota1", "Quota2"),'Quota2'); OK true Time taken: 0.144 seconds, F

我有下面的,这给了我一套在蜂箱里

collect_set(quotaname)
样本输出:

["Quota1", "Quota2"]
我曾尝试使用
contains
LIKE
运算符,但我不知道如何说
如果集合中的最后一项=X,那么…


有人能给我建议吗?

您可以使用
数组\u contains

hive> select array_contains(array("Quota1", "Quota2"),'Quota2');
OK
true
Time taken: 0.144 seconds, Fetched: 1 row(s)
hive> select array_contains(array("Quota1", "Quota2"),'Quota3');
OK
false
Time taken: 0.096 seconds, Fetched: 1 row(s)
要访问集合中的最后一项,请使用
set[size(set)-1]

with mydata as (
 select array('Quota1', 'Quota2') as myset
)
select case when myset[size(myset)-1] = 'Quota2' then 'Contains!' else 'No' end from mydata ;
结果:

OK
Contains!
Time taken: 3.375 seconds, Fetched: 1 row(s)
您可以使用
LIKE
运算符:
myset[size(myset)-1]如“%Quota%”