Hadoop 如何在配置单元中执行不区分大小写的数组_contains子句

Hadoop 如何在配置单元中执行不区分大小写的数组_contains子句,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,我有一个蜂巢查询,看起来像这样: select * from table_name where array_contains(field_name, '${some_variable}'); 这样做没有问题,但区分大小写。我需要它不区分大小写,但两者都不区分 select * from table_name where array_contains(lower(field_name), '${some_variable}'); 及 失败,出现空指针异常。有没有办法使此查询不区分大小写 wit

我有一个蜂巢查询,看起来像这样:

select * from table_name where array_contains(field_name, '${some_variable}');
这样做没有问题,但区分大小写。我需要它不区分大小写,但两者都不区分

select * from table_name where array_contains(lower(field_name), '${some_variable}');

失败,出现空指针异常。有没有办法使此查询不区分大小写

with t as (select array('X','y','Z') as field_name, 'Y' as var)
select  array_contains(split(lower(concat_ws('\u0001',field_name)),'\u0001'),lower(var))
from    t

with t as (select array('X','y','Z') as field_name, 'Y' as var)
select  array_contains(split(lower(concat_ws('\u0001',field_name)),'\u0001'),lower(var))
from    t
with t as (select array('X','y','Z') as field_name, 'Y' as var)
select  concat_ws('\u0001',field_name) rlike concat('(?i)(^|\\x01)',var,'(\\x01|$)')
from    t