基于python mapreduce的kmeans

基于python mapreduce的kmeans,python,hadoop,mrjob,Python,Hadoop,Mrjob,我将为kmeans算法编写一个映射器和reducer,我认为最好的做法是将距离计算器放在映射器中,并将集群id作为键,行坐标作为值发送到reducer。在减速器中,将执行质心更新。我是用python写的 正如您所知,我必须使用Hadoop流媒体在STDIN和STOUT之间传输数据。据我所知,当我们打印(key+“\t”+value)时,它将被发送到reducer。Reducer将接收数据并计算新的质心,但当我们打印新的质心时,我认为它不会将它们发送到mapper来计算新的簇,它只是将其发送到ST

我将为kmeans算法编写一个映射器和reducer,我认为最好的做法是将距离计算器放在映射器中,并将集群id作为键,行坐标作为值发送到reducer。在减速器中,将执行质心更新。我是用python写的


正如您所知,我必须使用Hadoop流媒体在
STDIN
STOUT
之间传输数据。据我所知,当我们
打印(key+“\t”+value)
时,它将被发送到reducer。Reducer将接收数据并计算新的质心,但当我们打印新的质心时,我认为它不会将它们发送到mapper来计算新的簇,它只是将其发送到STDOUT,正如您所知,kmeans是一种迭代算法。所以,我的问题是Hadoop流媒体是否会因为执行迭代程序而受到影响,我们应该使用
MRJOB
来执行迭代程序

MapReduce中的KMeans已经有许多实现。例如,请参阅。是的,我知道,但我想通过Hadoop、Python和Hadoop Streaming实现kmeans。我知道,我想说的是,看看他们用来完成这项工作的算法。@user3616059您实际做了什么吗?您在其他问题中没有给出反馈!