Hive hql:聚合成MAP数据类型

时间:2012-07-16 07:31:43

标签: sql hadoop hive

我有一个名为graph_table的表,其中包含2列

node_id INT  
neighbour_id INT

我需要运行以下选择查询

SELECT node_id, aggregater_func( neighbour_id ) as neighbourhood  FROM graph_table GROUP BY node_id

aggregater_func将邻居聚合为MAP <INT(neighbour_id), INT(frequency)>

这个aggregater_func应该是什么?

2 个答案:

答案 0 :(得分:0)

你不能用原生HQL做到这一点。

但是使用Facebook的PrestoDB,您可以获得直方图功能

来自https://prestodb.io/docs/current/functions/aggregate.html

  

histogram(x)→map返回包含计数的映射   每个输入值出现的次数。

或者它可能存在于UDF中以在HQL上使用地图,例如https://github.com/klout/brickhouse。我不太了解,但你可以尝试一下。

答案 1 :(得分:-1)

尝试以下方法:

select node,SUM(neighbour) 
    from #neighbourhood 
    group by node