scala 2.10的spark 1.6中存在奇怪的隐式转换问题
下面是示例代码,仅当我将这两段代码放在spark shell中时才会发生。这也只发生在spark 1.6和scala 2.10上。我想这是scala 2.10的问题。有人知道根本原因吗。谢谢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
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导入。如果有帮助,请将其标记为已接受。谢谢