K-Means计算分布式计算

Red*_*Fox 1 k-means apache-spark

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

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

zsx*_*ing 5

KMeansDataGenerator用于sc.parallelize生成数据.有一个参数sc.parallelize是分区号.您可以通过KMeansDataGenerator选项更改它.

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

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

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