繁体   English   中英

Scala:将RDD [LabelledPoint]转换为RDD [(Long,Vector)]

[英]Scala: Convert RDD[LabelledPoint] to RDD[(Long,Vector)]

我在RDD[LabeledPoint]有数据(在下面的代码中表示为sparse0.sparseData

我想转换为RDD[(Long,Vector)]以便可以在mllib程序包中运行LDA分析。

我能管理的最好的LDA.runRDD[(Long,Vector[Double])]的映射,当输入LDA.run方法时该LDA.run不会编译

尝试映射到RDD[(Long,Vector)]不会在.map方法中编译。 (错误向量带有类型参数)

我的地图方法似乎曲折的事实表明我缺少明显的东西。 任何提示将不胜感激

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)

Scala Vectormllib.linalg.Vector 我会用zipWithIndex

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM