K-Means计算分布式计算

时间:2014-04-07 21:55:48

标签: k-means apache-spark

我在scala 0.9.0上运行k-means聚类,我试图理解数据如何在n个系统之间分配以计算k个中心数据点。

我理解k-means聚类是什么,但我想知道数据是如何划分的,并且计算是在分布式计算上完成的(map和reduce)。在此scala版本中,KMeansDataGenerator可以选择将数据点生成到n个分区中。每个从节点是否获得一个数据文件分区?

1 个答案:

答案 0 :(得分:5)

KMeansDataGenerator使用sc.parallelize生成数据。 sc.parallelize中有一个参数是分区号。您可以通过KMeansDataGenerator选项进行更改。

之后,SparkKMeans将在整个k-means算法中使用此分区编号。

  

每个从属节点是否获得一个数据文件分区?

Spark不保证分区的位置。但是,它会尝试将计算安排到最近的具有分区文件的节点。