【发布时间】:2021-02-08 17:16:46
【问题描述】:
下面的代码有问题:
class Review(label: Double, features:org.apache.spark.ml.linalg.Vector)
def transformDataTFIDF(plainText: RDD[String],reviewClass:String,label:Int,numTerms:Int): org.apache.spark.sql.Dataset[Review] = {
val lemmatized = plainText.zipWithIndex.map(_.swap).mapPartitions(iter => {
val pipeline = createNLPPipeline();
iter.map{ case(id, contents) => (id.toString(),
plainTextToLemmas(contents, stopWords, pipeline))
};
}).cache()
val (termDocMatrix, termIds, docIds, idfs) = termDocumentMatrix(lemmatized, stopWords, numTerms, sc)
val vectorizedReviewsMap = Map( reviewClass -> termDocMatrix)
val ReviewsList = MutableList[Review]()
val ReviewsVecRDD = vectorizedReviewsMap(reviewClass).collect().foreach(v => ReviewsList += Review(label,v.asML))
ReviewsList.toDS()
}
我收到了这个错误:
<console>:73: error: not found: value MutableList
val ReviewsList = MutableList [Review]()
你能告诉我应该怎么做吗?
【问题讨论】:
-
首先,stdlib中没有
MutableList,可能是ListBuffer? - 其次,您可能需要做的就是import它,但由于我们不知道它应该是哪种类型以及它来自哪个库,所以不可能这样做。 - 第三,如果你要将collect所有数据放入本地List然后再次分发,那么使用像Spark这样的分布式系统没有多大意义,然后你可以调用@ 987654328@ 直接在RDD上。 - 第四,如果您不知道如何修复导入错误,也不知道为什么collect不好,您不应该使用 Spark
标签: scala mutablelist