【问题标题】:value toDF is not a member org.apache.spark.rdd.RDD值 toDF 不是成员 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 那,面对掌心时刻。

标签: scala apache-spark spark-dataframe


【解决方案1】:

toDF() 已在 Spark 1.3 版中添加, 您必须使用旧版本(小于 1.3)的 Spark,这就是您收到此错误的原因。
要解决此问题,请使用 Spark 1.3 或更高版本。

【讨论】:

    猜你喜欢
    • 2016-02-15
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    相关资源
    最近更新 更多