如何在build.sbt中包含sap hana vora外部jar

时间:2017-01-02 14:30:11

标签: scala sbt vora

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

我的scala代码是

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 assembly

我使用了以下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中的签名是指类型SQLContext 包org.apache.spark.sql中的[error]不可用。 [error]当前类路径或版本可能完全丢失 [error]类路径可能与编译ExtendableSQLContext.class时使用的版本不兼容。

如何克服此错误。我是scala,sbt,spark和vora的新手。

2 个答案:

答案 0 :(得分:1)

您可能缺少此依赖关系:

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

答案 1 :(得分:0)

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

  

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