Scala Array.map返回ArraySeq

Scala Array.map返回ArraySeq,scala,apache-spark,Scala,Apache Spark,我编写了以下函数来转换RDD def project[T](rdd: RDD[Array[T]], cols: Array[Int]): RDD[Array[T]] = { return rdd.map(allCols => { cols.map(allCols(_)) }) } 然而,当我尝试编译这个时,我得到了 [INFO] found : scala.collection.mutable.ArraySeq[T] [INFO] required: Array[T] [IN

我编写了以下函数来转换RDD

def project[T](rdd: RDD[Array[T]], cols: Array[Int]): RDD[Array[T]] = {
  return rdd.map(allCols => { cols.map(allCols(_)) })
}
然而,当我尝试编译这个时,我得到了

[INFO]  found   : scala.collection.mutable.ArraySeq[T]
[INFO]  required: Array[T]
[INFO]  return rdd.map(allCols => { cols.map(allCols(_)) })

我对这一点的解释是Scala推断出地图的类型是ArraySeq,但我不确定为什么会这样。任何帮助都将不胜感激

我在Scala 2.11
def项目[T](rdd:rdd[Array[T]],cols:Array[Int]):rdd[Array[T]=rdd.map(allCols=>cols.map(allCols))
看起来您的map函数将数组的类型从T更改为Seq[T]。因此,要么修复该问题,要么更改转换的返回类型。