Hive 配置单元:如何测试和查找空映射条目?

Hive 配置单元:如何测试和查找空映射条目?,hive,Hive,如果在配置单元表中使用映射类型,如何测试null条目(键存在,但值为null) 带表格: test1 (id string, m map<string, string>) 如果我运行查询: 从test1中选择*,其中m[“c”]为空 我将返回这两行,因为表达式每次的计算结果都是true 如何在键存在和值为null之间进行测试?我想出了两种解决方案 要查找映射实际包含特定键且其值为空的行,请执行以下操作: select * from test1 where array_contai

如果在配置单元表中使用映射类型,如何测试null条目(键存在,但值为null)

带表格:

 test1 (id string, m map<string, string>)
如果我运行查询:

从test1中选择*,其中m[“c”]为空

我将返回这两行,因为表达式每次的计算结果都是true


如何在键存在和值为null之间进行测试?

我想出了两种解决方案

要查找映射实际包含特定键且其值为空的行,请执行以下操作:

select * from test1 where array_contains(map_keys(m),'c') and m["c"] is null;
要查找值为null的任何键,请执行以下操作:

select id,k from test1 LATERAL VIEW explode(m) et as k,v where v is null;

因此,是的,我添加了我自己的答案,但寻求反馈和/或其他解决方案
select id,k from test1 LATERAL VIEW explode(m) et as k,v where v is null;