Hadoop 我们能在一个映射函数中生成2对(键、值)吗?如果是,怎么做?
我有一个userID数据集和一篇与每个userID相关的文章。 我想统计每个用户的帖子数量。我还想把每个userID的所有帖子放在一起(将所有帖子分开)Hadoop 我们能在一个映射函数中生成2对(键、值)吗?如果是,怎么做?,hadoop,mapreduce,Hadoop,Mapreduce,我有一个userID数据集和一篇与每个userID相关的文章。 我想统计每个用户的帖子数量。我还想把每个userID的所有帖子放在一起(将所有帖子分开) 有什么建议吗?您在密钥/值对中的密钥将是用户ID。该值将是字符串(消息)的列表。大多数列表都有count属性 您要查找的信息的访问方式如下: var-userId=39 获取用户39的第一条消息:userMessages[userId][0]。 获取用户发布的邮件数39:userMessages[userId].Count()IMHO,您可以使
有什么建议吗?您在密钥/值对中的密钥将是用户ID。该值将是字符串(消息)的列表。大多数列表都有count属性 您要查找的信息的访问方式如下: var-userId=39
获取用户39的第一条消息:userMessages[userId][0]。
获取用户发布的邮件数39:userMessages[userId].Count()IMHO,您可以使用映射器和还原器 制图员:
连接的文本可以写入reducer的上下文
注意:在连接之前,请删除文章中的所有制表符。如果您希望计数也出现在输出中,请在计数前加上制表符,并在其后面加上连接的贴子。是的,我很清楚键应该是什么。我理解该值可以是字符串,即post。但是,我应该设置什么值来计算用户的帖子数量?当您将消息添加到值中包含的列表中时,它将通过列表上的count属性返回消息数量。如果我知道你使用的语言,我可以说得更具体一些。例如,在C#中,您可以创建如下对象:userMessages[userId]=newlist();将添加一条新消息,如下所示:userMessags[userId].Add(message);更简单地说,在键/值对中,“值”通常可以是您想要的任何类型。它可以是另一张地图。它可以是一个列表。它可以是您定义的对象列表。感谢E Lewis提供的宝贵建议。我相信这个值甚至可以是一个数据结构,比如一个对象。我说得对吗?