2
如何計算同一項目的每組行的分位數(百分位數或百分位數)?Hive - 如何獲得每組數值的分位數
我想知道項目'101',只考慮'p'爲1的行,例如需要在前25%的值。
create table t1
(item INT,
p INT,
value FLOAT
);
insert into t1 values ('101', '1', '.5');
insert into t1 values ('101', '2', '.4');
insert into t1 values ('101', '1', '.6');
insert into t1 values ('101', '2', '.2');
insert into t1 values ('101', '1', '.7');
insert into t1 values ('101', '2', '.3');
insert into t1 values ('102', '1', '1.5');
insert into t1 values ('102', '2', '1.4');
insert into t1 values ('102', '1', '1.6');
insert into t1 values ('102', '2', '1.2');
insert into t1 values ('102', '1', '1.7');
insert into t1 values ('102', '2', '1.3');
我已經嘗試了以下,但得到一個錯誤。
SELECT
item,
p,
value,
NTILE(4) OVER (ORDER BY value DESC) AS quartile
FROM t1
group by item
where p=1
錯誤消息:
錯誤在編譯時聲明:失敗ParseException的行8:0 缺少EOF在 '位置' 附近的項目
我能做到這一點的R,與一個命令如:
d[p==1, quantile(value, .75, na.rm=TRUE), by=item]
但我需要在Hadoo由於性能原因。
我該如何計算使用上述UDF的十分位數? –