//Pig Program
User = LOAD 'path' USING PigStorage(',') as (id:int, reputation:int, displayname:chararray, loc:chararray, age:int);
Post = LOAD 'path' USING PigStorage(',') as (id:int, post_type:int, creationdate:chararray, score:int, viewcount:int, ownerus)er_id:int, title:chararray, answercount:chararray, commentcount:chararray);
JOIN User BY id, Post BY id;
a = JOIN User BY id, Post BY id;
DUMP a;
User_Group = Group a ALL;
Max_reputation = foreach User_Group Generate(User.displayname, User.reputation, Post.id), MAX(User.reputation), COUNT(Post.id);
所以基本上我将两个不同的表分组,即user和post,然后对其应用联接。
问题说明:查找具有最大信誉的用户的显示名和帖子数。
所以基本上我需要显示名称和声誉从用户
还有邮局的身份证
我想在join上应用max(user.reputation)和count(post.id),即
请帮忙。
更有用的是,应用join然后执行max和count,或者应用max和count然后执行join。
1条答案
按热度按时间uyhoqukh1#
问题陈述:查找具有最大信誉的用户的displayname和帖子数。
首先利用关系“user”找到信誉度最大的用户的显示名
然后应用带有关系“post”的join来收集该max用户的所有post。。然后根据id应用分组并进行计数。
下面的代码将帮助您实现目标