如何获得蜂巢中每个群体的最高数量

时间:2015-01-12 13:30:13

标签: hadoop count hive sql-order-by hql

有一些数据如下面的格式

url                    |    ip
-----------------------+-----------------
http://aaa.com/        |    1.1.1.1
http://bbb.com/        |    1.2.3.5
http://ccc.com/        |    1.1.1.6
http://ddd.com/        |    1.2.3.4
http://ccc.com/        |    1.1.1.2
http://ccc.com/        |    1.1.1.2
http://ccc.com/        |    1.1.1.2
http://aaa.com/        |    1.1.1.1
http://bbb.com/        |    1.2.3.5

我现在尝试通过url计算每个组中最高n ip的ip列。像

url                    |    ip           |    ipcount
-----------------------+-----------------+-----------------
http://aaa.com/        |    1.1.1.1      |    2
http://aaa.com/        |    5.6.7.8      |    1
http://bbb.com/        |    1.2.3.5      |    2
http://ccc.com/        |    1.1.1.2      |    3
http://ccc.com/        |    1.1.1.6      |    1
http://ddd.com/        |    1.2.3.4      |    1

请告诉我如何编写HQL以在Hive中实现它?

更新:抱歉,我忘了注意到我应该在每个组中获得前N个记录,如...

2 个答案:

答案 0 :(得分:0)

尝试:SELECT url, ip, COUNT(url) FROM tbl GROUP BY url, ip

答案 1 :(得分:0)

SELECT url, ip, count(*) as ipcount
from table t
group by url, ip

这适用于你的情况。