我试着用猪来计算百分位数。我需要使用属性对数据进行分组,并根据sales计算组中每个元组的百分位数。
我见过没有内置的猪功能来做到这一点。想知道以前是否有人遇到过类似的问题可以帮助我。
发布于 2014-04-11 20:29:14
正如JaiPrakash所提到的,您可以使用Apache DataFu库中的UDF StreamingQuantile。既然我已经准备好了一个示例,我就在这里复制它。
输入
item1,234
item1,324
item1,769
item2,23
item2,23
item2,45猪脚本
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))https://stackoverflow.com/questions/23015725
复制相似问题