使用 Mahout 向量训练 Spark k-means

Train Spark k-means with Mahout vectors

我的 hdfs 中有一些序列文件格式的 Mahout 向量。是否可以以某种方式使用相同的向量在 Spark 中训练 KMeans 模型?我可以将现有的 Mahout 向量转换为 Spark 向量 (mllib),但我想避免这种情况。

Mahout 向量不受 Spark 直接支持。你会 - 按照你的关注 - 需要将它们转换为 Spark Vectors。

val sc = new SparkContext("local[2]", "MahoutTest")
val sfData = sc.sequenceFile[NullWritable, MVector](dir)
val xformedVectors = sfData.map { case (label, vect) =>
  import collection.JavaConversions._
  (label, Vectors.dense(vect.all.iterator.map{ e => e.get}.toArray))
}