如果不使用自定义项,我如何计算apachepig中数据集的统计模式?
A,20
A,10
A,10
B,40
B,40
B,20
B,10
data = LOAD 'myData.txt' USING PigStorage(',') AS key, value;
byKey = GROUP data BY key;
mode = FOREACH byKey GENERATE MODE(data.value); -- How to define MODE() ??
DUMP mode;
-- Correct answer: (A, 10), (B, 40)
3条答案
按热度按时间qv7cva1a1#
为用户定义的函数编写求值函数
MODE
.一般来说,pig的求值函数数量非常有限,当您开始做比min/max/count更复杂的事情时,您需要熟悉编写udf。
qlckcl4x2#
我有一个简单的udf来计算这里的模式(它使用apachecommons-math3,pig0.10.0):
mm5n2pyu3#
以下是每个键只能找到一个结果的版本:
此版本将为同一个键找到所有相同频率的值: