Hive地图数据检索拉空值

时间:2016-07-30 07:28:01

标签: hive

我是hive的新手,我遇到复杂的数据映射检索问题,当我尝试检索特定的键值对时,它也从记录中拉出null。

描述我的桌面电话

name                    string                                      
ph                      map<string,int> 

这是我的查询

select ph["yy"] from phone; 

这是我的数据

gua {"p":123456}
xxx {"yy":7987897}

执行查询后的结果是

hive> select ph["yy"] from phone;      
OK
NULL
7987897

我想知道为什么它会抛出空值。

请帮助我非常感谢。

1 个答案:

答案 0 :(得分:1)

这是内置的。这对于Array类型列也是有效的。要避免使用NULL,请使用WHERE子句。

- 使用Hive进行编程:

ARRAY索引是基于0的,就像在Java中一样。这是一个选择下级数组的第一个元素的查询:

hive> SELECT name, subordinates[0] FROM employees;
John Doe Mary Smith
Mary Smith Bill King
Todd Jones NULL
Bill King NULL

请注意,引用不存在的元素会返回NULL。此外,不再引用提取的STRING值!