Spark程序无法打开SQL Server上下文?

时间:2017-05-11 22:14:11

标签: sql-server scala apache-spark

在文件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

2 个答案:

答案 0 :(得分:1)

您应该使用具有单个入口点SparkSession的Spark 2。您可以将SQLContextSparkContext创建为

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

祝你好运!