滤波器阵列

滤波器阵列

问题描述:

一个Apache蜂巢表具有以下列定义:滤波器阵列

myvars:array<struct<index:bigint,value:string>> 

为相应的数据的一个例子是:

"myvars":[ 
    {"index":2,"value":"value1"} 
    , {"index":1,"value":"value2"} 
    , {"index":2,"value":"value3"} 
] 

如何这个阵列进行滤波,以所有元素,其中“指数“== 2。

在JavaScript中,我会做类似如下:

myvars.filter(function(d){return d.index==2;}) 

如何相同的结果可以与Apache蜂巢QL实现,最好不横向看法?

+0

重复的:http://*.com/questions/26774332/ hive-check-elements-in-array – kecso

+0

我也有这个问题,你能找到解决方案吗?让我知道请https://*.com/questions/47280628/how-to-filter-on-map-value-in-hive-arraymapstring-string – reihaneh

蜂巢你有一组收集功能:

Collection 
    array_contains(Array<T> a, val) 
    array<K.V> map_keys(Map<K.V> a) 
    array<K.V> map_values(Map<K.V> a) 
    size(Map<K.V>|Array<T> a) 
    sort_array(Array<T> a) 

在查询中使用

... 
WHERE 
array_contains(myvars,2)