我在HDFS中有一些以序列文件格式存储的Mahout向量。是否可以使用这些向量以某种方式在Spark中训练KMeans模型?我可以将现有的Mahout向量转换为Spark向量(mllib),但我想避免这样做。
回答:
Spark并不直接支持Mahout向量。正如您所担心的那样,您需要将它们转换为Spark向量。
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))}