选择与Hadoop用户列表匹配的记录

时间:2012-06-19 18:36:55

标签: hadoop

作为尝试学习hadoop的一部分,我正在使用来自twitter流API的大量推文开展项目。在约20万条推文中,我已经生成了N个最活跃用户的列表,我想尝试根据所有推文的文本进行聚类。

所以我有几千个用户名的列表,我想要做的是将每个用户的所有推文的内容连接在一起,最终为每个用户生成一个字数矢量。

我无法弄清楚如何完成连接。我希望能够编写一个接收每个推文行的映射器,然后说“如果这条推文来自我感兴趣的用户,请用关键用户名和值tweetText映射,否则忽略它。 "然后,reducer很容易连接我想要的推文。

我的问题是,如何告诉映射器我感兴趣的这个大用户列表?如果映射器可以与所有用户一起使用Hashtable似乎会很好,但我不知道这是否可能。

是否有一种很好的方法可以实现这一目标,或者问题是否不适合Map / Reduce?

1 个答案:

答案 0 :(得分:1)

噢,没关系。我一直在考虑这个问题,但是一旦我在这里写下来,我就意识到我认为我应该这样做。我可以一次完成所有操作,而不是使用X条推文列出所有用户的列表,然后再次查看数据并尝试查找推文。

目前我正在映射[username,1],然后将reducer与所有1的总和相加以生成推文计数。然后我尝试找到超过X条推文的所有用户的推文。

要一次完成所有操作,我应该映射[username,completeTweet],然后让reducer连接并输出只有超过X条推文的用户的数据,并忽略其他用户。