值 toDF 不是成员 org.apache.spark.rdd.RDD
Posted
技术标签:
【中文标题】值 toDF 不是成员 org.apache.spark.rdd.RDD【英文标题】:value toDF is not a member org.apache.spark.rdd.RDD 【发布时间】:2016-07-05 09:34:17 【问题描述】:def main(args: Array[String])
val conf = new SparkConf().setMaster("local").setAppName("test")
val sc = new SparkContext(conf)
//require spark sql environment
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._
val df1 = sc.makeRDD(1 to 5).map(i => (i, i * 2)).toDF("single", "double")
sc.stop()
我已经写了“import sqlContext.implicits._”; 但是它仍然不起作用。它就在 spark-shell 中。 为什么在这种情况下不正确? 我已经看到了许多其他将 rdd 转换为数据框的方法, 但我的大部分代码都写成 toDF()。 如何使 toDF 工作? 错误:
Error:(25, 55) value toDF is not a member of org.apache.spark.rdd.RDD[(Int, Int)]
val df1 = sc.makeRDD(1 to 5).map(i => (i, i * 2)).toDF("single", "double")
^
【问题讨论】:
这很有趣,我无法重新创建它,而且您的代码在这里运行良好,您对sqlContext
的调用是正确的;你想尝试添加import org.apache.spark.sql._
吗?也许是您的 IDE 没有正确响应?如果您使用的是 Eclipse,您可能需要执行 sbt eclipse 或其他操作以将库包含在调试器中。
你的构建配置是什么? Spark 的版本?
@GameOfThrows 我相信 OP 使用的是 spark 版本
你愿意分享你的构建文件的相关依赖部分吗? sbt 还是 maven?
@eliasah ofc 那,面对掌心时刻。
【参考方案1】:
toDF() 已在 Spark 1.3 版中添加, 您必须使用旧版本(小于 1.3)的 Spark,这就是您收到此错误的原因。 要解决此问题,请使用 Spark 1.3 或更高版本。
【讨论】:
以上是关于值 toDF 不是成员 org.apache.spark.rdd.RDD的主要内容,如果未能解决你的问题,请参考以下文章
值 toDF 不是 org.apache.spark.rdd.RDD[(Long, org.apache.spark.ml.linalg.Vector)] 的成员
toDF 不是 Seq 的成员,toDS 不是 Seq 的成员
错误:值 toDF 不是 org.apache.spark.rdd.RDD[org.apache.kafka.clients.consumer.ConsumerRecord[String,String