0

我有一个名为 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 应该是什么?

4

2 回答 2

0

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

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

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

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

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

于 2017-06-02T08:13:46.307 回答
-1

尝试以下操作:

select node,SUM(neighbour) 
    from #neighbourhood 
    group by node
于 2012-07-16T07:53:24.893 回答