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%”
等