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

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

我想将其转换为 RDD[(Long,Vector)],这样我就可以在mllib包中运行LDA分析。

我能做到的最好的方法是映射到 RDD[(Long,Vector[Double])],但在输入 LDA.run 方法时无法编译

尝试映射到 RDD[(Long,Vector)].map 方法中也无法编译。(错误信息是Vector需要类型参数)

我的映射方法看起来很复杂,这表明我可能遗漏了一些显而易见的东西。任何提示将不胜感激

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)}.toMapval mappedRDD=spark.sparkContext.parallelize(mappedData.toSeq)// 使用LDA将文档聚类成三个主题val ldaModel = new LDA().setK(3).run(mappedRDD)

回答:

Scala中的 Vectormllib.linalg.Vector 不同。我会使用 zipWithIndex

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注