44:错误:读取的值不是对象org.apache.spark.sql.SQLContext的成员

时间:2017-03-08 11:17:25

标签: scala apache-spark databricks

我使用的是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 path to / 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中提供的建议,以及其他网站。但似乎没有任何工作。

1 个答案:

答案 0 :(得分:1)

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

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

所以代码应该是:

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