2017-03-08 33 views
0

我正在使用Spark 1.6.1和Scala 2.10.5。我试图通过com.databricks阅读csv文件。 启动spark-shell时,我还使用下面的行以及44:错误:值读取不是对象的成员org.apache.spark.sql.SQLContext

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以及其他网站的建议。但似乎没有任何工作。

回答

1

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

你应该使用sqlContext变量,方法不是静态的,而是在课堂上

所以代码应该是:

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

但现在我得到另一个错误 的conf:org.apache.spark .SparkConf = [email protected] sc:org.apache.spark.SparkContext = [email protected] sqlContext:org.apache.spark.sql.SQLContext = org.apache.spark .sql.SQLContext @ 62d42eb7 java.lang.RuntimeException:配置对象时出错 我应该怎样做到这一点? – user3521180

+0

@ user3521180它涉及到:http://stackoverflow.com/questions/30263646/sparksql-error-table-not-found。这与这个问题无关,解决将需要更多的信息 - 完整的代码和异常stacktrace - 所以我建议发布新的问题 –

+0

这是一个解决的线程现在 – user3521180

相关问题