scala 2.10的spark 1.6中存在奇怪的隐式转换问题

scala 2.10的spark 1.6中存在奇怪的隐式转换问题,scala,apache-spark,Scala,Apache Spark,下面是示例代码,仅当我将这两段代码放在spark shell中时才会发生。这也只发生在spark 1.6和scala 2.10上。我想这是scala 2.10的问题。有人知道根本原因吗。谢谢 case class Bank( age: Integer, job: String, marital: String, education: String, balance: Integer ) val bank = bankText. map(s => s.sp

下面是示例代码,仅当我将这两段代码放在spark shell中时才会发生。这也只发生在spark 1.6和scala 2.10上。我想这是scala 2.10的问题。有人知道根本原因吗。谢谢

case class Bank(
  age: Integer,
  job: String,
  marital: String,
  education: String,
  balance: Integer
)

val bank = 
  bankText.
    map(s => s.split(";")).
    filter(s => s(0) != "\"age\"").
    map(
      s =>
        Bank(
          s(0).toInt,
          s(1).replaceAll("\"", ""),
          s(2).replaceAll("\"", ""),
          s(3).replaceAll("\"", ""),
          s(5).replaceAll("\"", "").toInt
        )
    ).toDF()
错误:

error: value toDF is not a member of org.apache.spark.rdd.RDD[Bank]
possible cause: maybe a semicolon is missing before `value toDF'?
       ).toDF()
         ^

这是一个尚未解决的问题
.toDF()
在spark source中的
DatasetHolder
中定义

将case类移到您尝试
toDF
的方法之外

case class Bank(???)
然后,在你的方法中

import sparkSession.implicits._
val rdd: RDD[Bank] = ???

rdd.toDF()
注意,将
toDF
与大括号一起使用


这里有更多信息:

您共享的代码片段不包括,但我想您已经导入了
spark.implicits.\u
,对吗?可能与此重复,是的,它由spark shell导入。如果有帮助,请将其标记为已接受。谢谢