小编Mat*_*tan的帖子

在Pig中对袋子的不同值进行计数

在执行看似两级分组的时候,我对Pig有疑问.举个例子,假设我有一些示例输入数据,如:

email_id:chararray    from:chararray        to:bag{recipients:tuple(recipient:chararray)}
e1                    user1@example.com     {(friend1@example.com),(friend2@example.com),(friend3@myusers.com)}
e2                    user1@example.com     {(friend1@example.com),(friend4@example.com)}
e3                    user1@example.com     {(friend5@example.com)}
e4                    user2@example.com     {(friend2@example.com),(friend4@example.com)}
Run Code Online (Sandbox Code Playgroud)

因此,每一行都是来自用户"从"到用户"到"的电子邮件.

我最终想要一个列表,列出所有发件人和他们发送电子邮件的所有人,包括为每个人发送的电子邮件数量,从最高到最低排序,例如:

user1@example.com     {(friend1@example.com, 2), (friend2@example.com, 1), (friend3@example.com, 1), (friend4@example.com, 1), (friend5@example.com, 1)}
user2@example.com     {(friend2@example.com, 1), (friend4@example.com, 1)}
Run Code Online (Sandbox Code Playgroud)

关于在猪中解决这个问题的最佳方法的想法将不胜感激!

hadoop apache-pig

3
推荐指数
1
解决办法
3814
查看次数

标签 统计

apache-pig ×1

hadoop ×1