【问题标题】:Scala: error: not found: value MutableList val ReviewsList = MutableList [Review]()Scala:错误:未找到:值 MutableList val ReviewsList = MutableList [Review]()
【发布时间】: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


【解决方案1】:

MutableList 存在于 Scala 2.12 之前。它在 Scala 2.13 中被删除了你可能没有导入它。试试:

import scala.collection.mutable
val ReviewsList = mutable.MutableList[Review]()

或者:

val ReviewsList = scala.collection.mutable.MutableList[Review]()

Scala 2.12 的工作代码 sn-p 和 Scala 2.13 的相同非工作示例。

【讨论】:

    猜你喜欢
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 2019-12-19
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多