0

我正在尝试构建一个 spark 应用程序来访问 hana vora 内容。

我的斯卡拉代码是

import org.apache.spark.sql._
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext

object Vora_Test{
 def main(args: Array[String]) {
 val sconf = new SparkConf().setAppName("VoraTestApp")
 val sc = new SparkContext(sconf)
 val sqlc = new SapSQLContext(sc)
 val queryResult = sqlc.sql("SELECT * from DATA")
 queryResult.collect().foreach(println)

 }
}

我想在我的构建中包含第三方 jar “spark-sap-datasources-1.2.33-assembly.jar”。我试过 sbt 包,sbt 程序集

我使用了以下 build.sbt

name := "VoraApp"

version := "1.0"

scalaVersion := "2.10.4"



libraryDependencies ++= Seq("org.apache.spark" %% "spark-core" % "1.5.2",

"com.sap.spark" % "extensiondist" % "1.2.37" from "file:///local/file/loc/lib/spark-sap-datasources-1.2.33-assembly.jar")

没有任何效果。我收到以下错误

将 1 个 Scala 源代码编译到 local/file/loc/target/scala-2.10/classes... [错误] 错误的符号引用。ExtendableSQLContext.class 中的签名是指包 org.apache.spark.sql 中不可用的类型 SQLContext [error]。[错误] 当前类路径中可能完全缺少它,或者[错误] 类路径上的版本可能与编译 ExtendableSQLContext.class 时使用的版本不兼容。

如何克服这个错误。我是 scala、sbt、spark 和 vora 的新手。

4

2 回答 2

1

您可能缺少此依赖项:

"org.apache.spark" % "spark-sql_2.11" % "1.5.1"

于 2017-01-02T16:28:56.387 回答
0

那是文件的实际路径吗?在我看来这很不寻常...

file:///local/file/loc/lib/spark-sap-datasources-1.2.33-assembly.jar

于 2017-01-03T18:35:09.647 回答