Как да конвертирате Mahout VectorWritable във Vector в Spark

Имам VectorWritable (org.apache.mahout.math.VectorWritable), който идва от файл с последователност, генериран от Mahout, и бих искал да го конвертирам във векторен (org.apache.spark.mllib.linalg.Vectors) тип е Spark. Как мога да направя това в Scala?


person HHH    schedule 31.07.2015    source източник


Отговори (1)


Ако приемем, че имамеRDD[(Text, VectorWritable)] от вашия предишен въпрос.

import scala.collection.JavaConverters.iterableAsScalaIterableConverter

def mahoutToScala(v: org.apache.mahout.math.VectorWritable) =  {
    val scalaArray = v.get.all.asScala.map(_.get).toArray
    org.apache.spark.mllib.linalg.Vectors.dense(scalaArray)
}

rdd.map{ case (k, v) => (k.toString, mahoutToScala(v))}
person zero323    schedule 31.07.2015