use*_*141 5 hadoop hive hiveql
Apache hive 表具有以下列定义:
myvars:array<struct<index:bigint,value:string>>
Run Code Online (Sandbox Code Playgroud)
对应数据的一个例子是:
"myvars":[
{"index":2,"value":"value1"}
, {"index":1,"value":"value2"}
, {"index":2,"value":"value3"}
]
Run Code Online (Sandbox Code Playgroud)
如何将此数组过滤为“index”==2 的所有元素。
在 JavaScript 中,我会执行以下操作:
myvars.filter(function(d){return d.index==2;})
Run Code Online (Sandbox Code Playgroud)
如何使用 Apache Hive QL 获得相同的结果,最好没有横向视图?
在hive中有一组Collection函数:
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)
Run Code Online (Sandbox Code Playgroud)
在您的查询中使用
...
WHERE
array_contains(myvars,2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5254 次 |
| 最近记录: |