如何在scala中打印Map [String,Array [Float]]?

时间:2016-07-06 11:58:24

标签: scala dictionary apache-spark apache-spark-mllib word2vec

我正在使用word2vec函数,它位于Spark的mllib库中。我想打印我得到的单词向量作为“getVectors”函数的输出 我的代码如下所示:

import org.apache.spark._

import org.apache.spark.rdd._
import org.apache.spark.SparkContext._
import org.apache.spark.mllib.feature.{Word2Vec, Word2VecModel}

object word2vec {
  def main(args: Array[String]) {
    val conf = new SparkConf().setAppName("word2vec")
    val sc = new SparkContext(conf)
    val input = sc.textFile("file:///home/snap-01/balance.csv").map(line => line.split(",").toSeq)
    val word2vec = new Word2Vec()
    val model = word2vec.fit(input)
    model.save(sc, "myModelPath")
    val sameModel = Word2VecModel.load(sc, "myModelPath")
    val vec = sameModel.getVectors
    print(vec)
  }
}

我正在“地图(余额 - > [F @ 2932e15f]

2 个答案:

答案 0 :(得分:2)

试试这个:

vec.foreach { case (key, values) => println("key " + key + " - " + values.mkString("-") 
}

答案 1 :(得分:1)

或者,

println(vec.mapValues(_.toList))

但请留意这样做需要的记忆。