2017-11-15 12 views
0

に私はScalaは:RDD [LabelledPoint] RDD [(ロング、ベクトル)]

私はので、私はLDAを実行することができますRDD[(Long,Vector)]に変換する(下記のコードでsparse0.sparseDataと表記)RDD[LabeledPoint]のデータを持って変換しますmllibパッケージでの解析。

私が管理することができる最高は.map方法でコンパイルされませんRDD[(Long,Vector)]にマップしようとLDA.run方法

を締結したときにコンパイルされませんRDD[(Long,Vector[Double])]へのマップです。 (エラーベクトルは型パラメータを取る)

私のマップ方法が蛇行しているように見えることは、明らかなものがないことを示唆している。任意のヒントを大幅

val mappedData:Map[Long,Vector[Double]]=sparse0.sparseData().collect().map 
{ 
     var count:Int=0 
    row => 
    count=count+1 
    new Tuple2[Long,Vector[Double]](count,row.features.toArray.toVector) 



}.toMap 

val mappedRDD=spark.sparkContext.parallelize(mappedData.toSeq) 

// Cluster the documents into three topics using LDA 
val ldaModel = new LDA().setK(3).run(mappedRDD) 

答えて

2

を理解されるであろうスカラVectormllib.linalg.Vectorと同じではありません。私はzipWithIndex

val mappedRDD = sparse0.sparseData().map(_.features).zipWithIndex.map(_.swap) 
+0

うんをいただきたい、あなたはそれに私を打つ:)私mappedDataはヴァルmappedDataで入力された場合 :地図[ロング、org.apache.spark.mllib.linalg.Vector]すべての作品 – Jake

関連する問題