Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 蜂巢中的过滤器阵列_Hadoop_Hive_Hiveql - Fatal编程技术网

Hadoop 蜂巢中的过滤器阵列

Hadoop 蜂巢中的过滤器阵列,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,Apache配置单元表具有以下列定义: myvars:array<struct<index:bigint,value:string>> 如何将此数组过滤到“index”==2的所有元素 在JavaScript中,我将执行以下操作: myvars.filter(function(d){return d.index==2;}) 如何使用Apache Hive QL实现相同的结果,最好不使用横向视图?在Hive中,您有一组收集功能: Collection arra

Apache配置单元表具有以下列定义:

myvars:array<struct<index:bigint,value:string>>
如何将此数组过滤到“index”==2的所有元素

在JavaScript中,我将执行以下操作:

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

如何使用Apache Hive QL实现相同的结果,最好不使用横向视图?

Hive中,您有一组收集功能:

 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)

我认为,如果您试图提取索引为2的所有值,您需要如下内容:

SELECT DISTINCT value
FROM mytable 
LATERAL VIEW EXPLODE(myvars) exploded_myvars AS idx, value
WHERE idx = 2;
如果数据类型改为
array
,则会是

SELECT DISTINCT mv["value"]
FROM mytable 
LATERAL VIEW EXPLODE(myvars) exploded_myvars AS mv
WHERE mv["index"] = 2;

我也有这个问题,你能找到解决办法吗?请让我知道第一个链接不是重复的,因为这是嵌套结构,不是平面数组。第二个链接的页面似乎被破坏了…为我工作!谢谢
SELECT DISTINCT value
FROM mytable 
LATERAL VIEW EXPLODE(myvars) exploded_myvars AS idx, value
WHERE idx = 2;
SELECT DISTINCT mv["value"]
FROM mytable 
LATERAL VIEW EXPLODE(myvars) exploded_myvars AS mv
WHERE mv["index"] = 2;