在文件main.scala
中,
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import java.sql._
object ConnTest extends App {
val conf = new SparkConf()
val sc = new SparkContext(conf.setAppName("Test").setMaster("local[*]"))
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
sc.stop()
}
但是,sbt run
出现以下错误。
[info] Compiling 1 Scala source to C:\Users\user1\IdeaProjects\sqlServer\target\scala-2.11\classes... [error] C:\Users\user1\IdeaProjects\sqlServer\src\main\scala\main.scala:9: type SQLContext is not a member of package org.apache.spark.sql [error] val sqlContext = new org.apache.spark.sql.SQLContext(sc) [error] ^ [error] one error found [error] (compile:compileIncremental) Compilation failed [error] Total time: 1 s, completed May 11, 2017 6:11:47 PM
答案 0 :(得分:1)
您应该使用具有单个入口点SparkSession
的Spark 2。您可以将SQLContext
和SparkContext
创建为
val sparkSession = SparkSession.builder().master("local[*]").getOrCreate()
val sc = sparkSession.sparkContext
val sqlC = sparkSession.sqlContext
包含spark core和spark sql的依赖项
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.1.1"
libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.1.1"
答案 1 :(得分:0)
您的班级路径是正确的,请仔细检查您的maven或sbt configure
在maven中,您应该添加此特定的依赖:
provided
sbt也是类似的,如果你想在编译时添加这个依赖项并用它包装一个超级jar 。
但是某个时候火花核心jar是在运行时由群集提供,如果在这种情况下是,你可以调整你的范围值方便,也许#include <stdio.h>
。
必须要说的是sbt或maven只是依赖控制工具,与spark的执行无关,你应该在集群上上传你的jar包,并使用spark-submit程序跑吧!
请参阅spark示例的社区文档,然后尝试:
http://spark.apache.org/examples.html
祝你好运!