给出一个表
RequestContextListener
代表这样一个数字序列:0,0,0,0,0,0,0,1,2,2,2,4
使用sql查找中位数,在本例中为0。您需要在hive(qubole)
中运行此查询思想?
答案 0 :(得分:1)
Hive中有一个相当简单的解决方案。你在这里需要UDF这个。从本质上讲,您希望取消汇总您的计数数据,然后将其计算出来。
<强>查询强>:
add jar /path/to/jar/brickhouse-0.7.1.jar;
create temporary function numeric_range as 'brickhouse.udf.collect.NumericRange';
select percentile(number, 0.50) median
from (
select number
from db.table
lateral view numeric_range(count) n1 as n) x
内部查询将产生
0
0
0
0
0
0
0
1
2
2
2
4
然后您可以使用此列中的percentile()
函数
<强>输出强>:
median
------
0.0