我有一个用户ID数据集和一个与每个用户ID相关的帖子。我想计算每个用户的帖子数量。我还想把每个用户ID的所有帖子放在一起(将所有帖子连接起来,并进行一些分隔)。
有什么建议吗?
我直言,你可以有一个映射器和一个化简器。
映射:
- 类PostMapper扩展了映射器<对象,文本,文本,文本>
- map() 可以将一个键写入一个键,该键是 UserID(文本)和一个值,该值是上下文的 Post(Text)。
还原剂:
类 后化简器扩展 化简器<文本、文本、文本>
reduce() 可以有一个可迭代的循环,其中 (i) 一个计数的计数器对于每个获取的帖子,并且 (ii) 文本变量可用于将每个获取的帖子与合适的分隔符连接起来。
完成循环后,键/用户 ID 和,值/
串联文本可以写入化简器的上下文。
作业成功运行后,生成的文件将包含 UserID 和串联的帖子,由制表符分隔。
注意:在连接之前,请删除帖子中的所有制表符。在计数前面加上一个选项卡,如果希望计数也出现在输出中,请在它后面附加一个串联的帖子。
键/值对中的键将是 userId。 该值将是字符串(消息)的列表。 大多数列表都具有 count 属性。
您正在寻找的信息将按如下方式访问:
var userId = 39;
获取用户 39 的第一条消息:userMessages[userId][0]。
获取用户 39 发布的消息数:userMessages[userId]。计数()