Scala 2.13:方法映射的类型参数数量错误

Ale*_*dis 0 scala scala-2.13

我是 scala 新手,我将一些代码从 scala 2.12 迁移到 13。我有以下代码

override def transformSchema(schema: StructType): StructType = {
    StructType(schema.fields ++ this.getOutputCols.map[StructField, Array[StructField]]( col => StructField(col, StringType)))
  }
Run Code Online (Sandbox Code Playgroud)

我面临以下错误:

wrong number of type parameters for method map: [B](f: String => B)(implicit ct: scala.reflect.ClassTag[B]): Array[B]
[ERROR]     StructType(schema.fields ++ this.getOutputCols.map[StructField, Array[StructField]]( col => StructField(col, StringType)))
Run Code Online (Sandbox Code Playgroud)

你能解释一下为什么scala 2.13有这个问题吗,我没有找到与文档相关的东西map方法尝试转换数组,应该没问题

Mat*_*zok 5

2.13 是集合的重写 - 请参阅https://docs.scala-lang.org/overviews/core/collections-migration-213.html

特别是在您的情况下,问题与错误所述完全相同:

所以在 2.13 中应该是

  StructType(schema.fields ++ getOutputCols.map[StructField](col => StructField(col, StringType)))
Run Code Online (Sandbox Code Playgroud)