我们可以在一个映射函数中生成 2 对(键、值)吗?如果是,如何



我有一个用户ID数据集和一个与每个用户ID相关的帖子。我想计算每个用户的帖子数量。我还想把每个用户ID的所有帖子放在一起(将所有帖子连接起来,并进行一些分隔)。

有什么建议吗?

我直言,你可以有一个映射器和一个化简器。

映射:

  1. 类PostMapper扩展了映射器<对象,文本,文本,文本>
  2. map() 可以将一个键写入一个键,该键是 UserID(文本)和一个值,该值是上下文的 Post(Text)。

还原剂:

  1. 类 后化简器扩展 化简器<文本、文本、文本>

  2. reduce() 可以有一个可迭代的循环,其中 (i) 一个计数的计数器对于每个获取的帖子,并且 (ii) 文本变量可用于将每个获取的帖子与合适的分隔符连接起来。

  3. 完成循环后,键/用户 ID 和,值/
    串联文本可以写入化简器的上下文。

作业成功运行后,生成的文件将包含 UserID 和串联的帖子,由制表符分隔。

注意:在连接之前,请删除帖子中的所有制表符。在计数前面加上一个选项卡,如果希望计数也出现在输出中,请在它后面附加一个串联的帖子。

键/值对中的键将是 userId。 该值将是字符串(消息)的列表。 大多数列表都具有 count 属性。

您正在寻找的信息将按如下方式访问:

var userId = 39;
获取用户 39 的第一条消息:userMessages[userId][0]。
获取用户 39 发布的消息数:userMessages[userId]。计数()

相关内容

  • 没有找到相关文章

最新更新