使用Python&;查找Top-K;Hadoop流媒体
因此,我有一个以前作业的输出文件,格式为(.txt文件) 每行的左侧是我从文档中读取的单词,每行右侧的数字是我计算的次数。我想使用Python和Hadoop流创建另一个map-reduce作业,以查找top-k值。在这种情况下,假设为5。我很难想象地图绘制者应该做什么使用Python&;查找Top-K;Hadoop流媒体,python,python-2.7,hadoop,mapreduce,hadoop-streaming,Python,Python 2.7,Hadoop,Mapreduce,Hadoop Streaming,因此,我有一个以前作业的输出文件,格式为(.txt文件) 每行的左侧是我从文档中读取的单词,每行右侧的数字是我计算的次数。我想使用Python和Hadoop流创建另一个map-reduce作业,以查找top-k值。在这种情况下,假设为5。我很难想象地图绘制者应该做什么 我应该解析每一行并将每个单词和计数添加到列表中。那么,从这些列表中,我将获取top-k值并将其发送到减速机吗?然后reducer读取所有这些列表并只返回top-k值?如果有人能通过伪代码提供一些建议,或者在我走错了路时纠正我,我们
我应该解析每一行并将每个单词和计数添加到列表中。那么,从这些列表中,我将获取top-k值并将其发送到减速机吗?然后reducer读取所有这些列表并只返回top-k值?如果有人能通过伪代码提供一些建议,或者在我走错了路时纠正我,我们将不胜感激。谢谢 你几乎走上了正确的轨道。把你的单词作为关键字和计数作为映射器任务的值。如果在您的输入文件中,您可以为同一个单词和不同的计数获得多个条目,那么您不能从中取出前K。然后,您必须汇总数据,然后找出前K名。这应在减速器中完成。由于reducer将接收同一密钥的所有数据,因此它可以聚合完整的数据并取出top K。但是,必须有另一个链式map reduce来查找所有记录中的top K,其中您将有一个reducer来查找top元素
但是,如果您的输入文件有一个键条目,您可以从所有映射器发出top K,然后将其发送到1 Reducer,以从所有映射条目中找出top K 你几乎走上了正确的轨道。把你的单词作为关键字和计数作为映射器任务的值。如果在您的输入文件中,您可以为同一个单词和不同的计数获得多个条目,那么您不能从中取出前K。然后,您必须汇总数据,然后找出前K名。这应在减速器中完成。由于reducer将接收同一密钥的所有数据,因此它可以聚合完整的数据并取出top K。但是,必须有另一个链式map reduce来查找所有记录中的top K,其中您将有一个reducer来查找top元素 但是,如果您的输入文件有一个键条目,您可以从所有映射器发出top K,然后将其发送到1 Reducer,以从所有映射条目中找出top K
" 145
"Defects," 1
"Information 1
"Plain 2
"Project 5
"Right 1
#51302] 1
$5,000) 1
& 3
'AS-IS', 1
( 1
("the 1