我正在尝试用Pig计算百分位数.我需要使用属性对数据进行分组,并根据销售额计算组中每个元组的百分位数.
我已经看到没有内置Pig功能来做到这一点.想知道是否有人遇到类似问题可以帮助我.
作为JaiPrakash提到的,你可以使用UDF StreamingQuantile从Apache的DataFu库.由于我已经准备好了一个例子,我将在这里复制它.
输入
item1,234
item1,324
item1,769
item2,23
item2,23
item2,45
Run Code Online (Sandbox Code Playgroud)
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;
Run Code Online (Sandbox Code Playgroud)
产量
(item1,(234.0,324.0,769.0))
(item2,(23.0,23.0,45.0))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |