编译如下代码时,出现value toDF is not a member of org.apache.spark.rdd.RDD[People] 错误
val rdd : RDD[People]= sparkSession.sparkContext.textFile(hdfsFile,2).map(line => line.split(",")).map(arr => People(arr(0),arr(1).trim.toInt))
rdd.toDF
参考http://stackoverflow.com/questions/33704831/value-todf-is-not-a-member-of-org-apache-spark-rdd-rdd,针对此错误有人提出需要做到以下两点
1. import sqlContext.implicits._ 语句需要放在获取sqlContext对象的语句之后
2. case class People(name : String, age : Int) 的定义需要放在方法的作用域之外(即java的成员变量位置)
实际上只需要做到第二点即可解决错误
本文介绍了解决Spark中遇到的valuetoDFisnotamemberof错误的方法。通过调整代码结构,将case class定义移出方法作用域外,成功解决了这一问题。

9460

被折叠的 条评论
为什么被折叠?



