滤波器阵列
问题描述:
一个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实现,最好不横向看法?
答
在蜂巢你有一组收集功能:
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)
重复的:http://*.com/questions/26774332/ hive-check-elements-in-array – kecso
我也有这个问题,你能找到解决方案吗?让我知道请https://*.com/questions/47280628/how-to-filter-on-map-value-in-hive-arraymapstring-string – reihaneh