如何为此编写猪脚本?
我有一个文本文件,其中包含彼此是朋友的用户ID 例如(data.txt)
id id
1 2
1 3
1 4
2 1
2 5
3 1
4 8
所以用户ID 1是3人的朋友,用户ID 2是2人的朋友,依此类推......
我想计算并按递减顺序列出最多朋友数以及有多少用户拥有这么多朋友
这样的事情:1个用户有3个朋友,1个用户有2个朋友,2个用户有1个朋友 试图获得这样的列表
number of user number of friends (highest first)
1 3
1 2
2 1
感谢任何帮助
答案 0 :(得分:1)
你能试试吗?
<强> input.txt中强>
1 2
1 3
1 4
2 1
2 5
3 1
4 8
<强> PigScript:强>
A = LOAD 'input.txt' USING PigStorage() AS(id:int,friends:int);
B = GROUP A BY id;
C = FOREACH B GENERATE FLATTEN(COUNT(A.friends)) AS cnt;
D = GROUP C BY cnt;
E = FOREACH D GENERATE COUNT(C.cnt),group;
F = ORDER E BY group DESC;
DUMP F;
输出:
(1,3)
(1,2)
(2,1)