如何编写pig脚本来计算节点度数和计数

nimxete2  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(324)

怎么写Pig脚本呢?
我有一个文本文件,其中包含彼此是朋友的用户的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

感谢您的帮助

puruo6ea

puruo6ea1#

你能试试这个吗?
输入文件

1       2
1       3
1       4
2       1
2       5
3       1
4       8

Pig手稿:

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)

相关问题