2014-04-11 119 views
3

我想用豬計算百分位數。我需要使用屬性對數據進行分組,並根據銷售額計算組中每個元組的百分位數。豬拉丁文百分位數計算

我見過沒有內置豬功能來做到這一點。想知道如果有人遇到類似的問題,可以幫助我。

回答

6

正如JaiPrakash所述,您可以使用Apache DataFu庫中的UDF StreamingQuantile。由於我已經準備好了一個例子,我只需在這裏複製它。

輸入

item1,234 
item1,324 
item1,769 
item2,23 
item2,23 
item2,45 

PIG腳本

register datafu-1.2.0.jar; 
define Quantile datafu.pig.stats.StreamingQuantile('0.0','0.5','1.0'); 
data = load 'data' using PigStorage(',') as (item:chararray, value:int); 
quantiles = FOREACH (GROUP data by item) GENERATE group, Quantile(data.value); 
dump quantiles; 

輸出

(item1,(234.0,324.0,769.0)) 
(item2,(23.0,23.0,45.0))