Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python&;查找Top-K;Hadoop流媒体_Python_Python 2.7_Hadoop_Mapreduce_Hadoop Streaming - Fatal编程技术网

使用Python&;查找Top-K;Hadoop流媒体

使用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值?如果有人能通过伪代码提供一些建议,或者在我走错了路时纠正我,我们

因此,我有一个以前作业的输出文件,格式为(.txt文件)

每行的左侧是我从文档中读取的单词,每行右侧的数字是我计算的次数。我想使用Python和Hadoop流创建另一个map-reduce作业,以查找top-k值。在这种情况下,假设为5。我很难想象地图绘制者应该做什么


我应该解析每一行并将每个单词和计数添加到列表中。那么,从这些列表中,我将获取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