在执行看似两级分组的时候,我对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)
关于在猪中解决这个问题的最佳方法的想法将不胜感激!