【问题标题】:44: error: value read is not a member of object org.apache.spark.sql.SQLContext44:错误:读取的值不是对象 org.apache.spark.sql.SQLContext 的成员
【发布时间】:2017-03-08 19:27:52
【问题描述】:

我使用的是 Spark 1.6.1 和 Scala 2.10.5。我正在尝试通过 com.databricks 读取 csv 文件。 在启动 spark-shell 时,我也使用以下行

spark-shell --packages com.databricks:spark-csv_2.10:1.5.0 --driver-class-path 到/sqljdbc4.jar的路径,下面是整个代码

import java.util.Properties
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.sql.SQLContext


val conf = new SparkConf().setAppName("test").setMaster("local").set("spark.driver.allowMultipleContexts", "true");
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)

import sqlContext.implicits._

val df = SQLContext.read().format("com.databricks.spark.csv").option("inferScheme","true").option("header","true").load("path_to/data.csv");

我遇到以下错误:-

错误:读取的值不是对象 org.apache.spark.sql.SQLContext 的成员, 并且“^”指向错误消息中的“SQLContext.read().format”。

我确实尝试了 stackoverflow 以及其他网站中提供的建议。但似乎没有任何效果。

【问题讨论】:

    标签: scala apache-spark databricks


    【解决方案1】:

    SQLContext 表示对象访问 - 类中的静态方法。

    您应该使用sqlContext 变量,因为方法不是静态的,而是在类中

    所以代码应该是:

    val df = sqlContext.read.format("com.databricks.spark.csv").option("inferScheme","true").option("header","true").load("path_to/data.csv");
    

    【讨论】:

    • 但现在我得到另一个错误 conf: org.apache.spark.SparkConf = org.apache.spark.SparkConf@b43db07 sc: org.apache.spark.SparkContext = org.apache.spark.SparkContext @774cc4a9 sqlContext: org.apache.spark.sql.SQLContext = org.apache.spark.sql.SQLContext@62d42eb7 java.lang.RuntimeException: 配置对象时出错我应该怎么做?
    • @user3521180 相关:stackoverflow.com/questions/30263646/…。它与这个问题无关,解决需要更多信息 - 完整代码和异常堆栈跟踪 - 所以我建议发布新问题
    猜你喜欢
    • 2016-03-05
    • 2015-08-06
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 2015-01-20
    • 2017-04-18
    • 2018-03-04
    • 2019-01-02
    相关资源
    最近更新 更多