Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
Hive 按配置单元中的一列分组,要从另一列中选择任何条目吗_Hive - Fatal编程技术网

Hive 按配置单元中的一列分组,要从另一列中选择任何条目吗

Hive 按配置单元中的一列分组,要从另一列中选择任何条目吗,hive,Hive,因此,我有一个包含以下两列的配置单元表: TABLE: t, Columns: url string, json string 在表中,同一url可能有多个条目。我只想为每个url选择一个json。 但是,我找不到合适的agregator函数来从JSON中选择一个 查询: SELECT url, Aggregator(json) FROM t GROUP BY url; 对于允许我从集合中选择一个元素的合适聚合器函数,有什么建议吗?既然您没有提到如何选择“json”值,我认为这无关紧要

因此,我有一个包含以下两列的配置单元表:

TABLE: t, 
Columns: url string, json string
在表中,同一url可能有多个条目。我只想为每个url选择一个json。 但是,我找不到合适的agregator函数来从JSON中选择一个

查询:

SELECT url, Aggregator(json) 
FROM t 
GROUP BY url;

对于允许我从集合中选择一个元素的合适聚合器函数,有什么建议吗?

既然您没有提到如何选择“json”值,我认为这无关紧要。有两种方法可以做到这一点

样本数据

select url, json from t order by url, json;

234 Test_2
234 Test_3
234 Test_1
123 Test_3
123 Test_2
123 Test_1
使用
first\u value
功能

select url, val from 
(select url, first_value(json) val from t) a 
group by url, val;

234 Test_2
123 Test_2
另一种方法是利用Facebook()

create temporary function choose_one as 'com.facebook.hive.udf.UDAFChooseOne';

select url, choose_one(json) from t group by url;

123 Test_3
234 Test_2