0
数据集:
我在(ID,类别)格式的数据集(data.txt中)如下面给出:
提高的效率PIG脚本
01,X
02,Y
03,X
04,Y
05,X
06,X
07,Z
08,Z
09,X
10,Z
目的:
目标是找出哪个类别具有最大数量的ID而不使用UDF。
一种方法:
我已经试过多次,并得出结论认为,这可以通过设置PIG报表
A1 = LOAD 'data.txt' USING PigStorage(',') AS (ID:int , Category:chararray);
A2 = DISTINCT A1;
A3 = GROUP A2 BY Category;
A4 = FOREACH A3 GENERATE group AS Category, COUNT(A2.ID) AS Number;
A5 = GROUP A4 ALL;
A6 = FOREACH A5 GENERATE MAX(A4.Number);
A7 = FILTER A4 by Number == A6.$0;
A8 = FOREACH A7 GENERATE Category;
DUMP A8;
请求的followins被achived:
尽管这些声明得到期望的结果,我不相信它的效率。 由于我是PIG的新手,我不确定是否有任何内置函数可以执行此类任务,以便从表格中输出最小值或最大值的相应值。
我的要求是要知道这是否可以用更少的步骤数完成。
非常感谢
该脚本将工作F9如果数据集只有一个最高值,如果您有多个最大值不会产生正确的结果.. –