2017-01-02 71 views
0

我試圖構建一個spark應用程序來訪問hana vora內容。如何在build.sbt中包含sap hana vora外部jar

我的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) 

} 
} 

我想包括在我的體型第三方罐子 「火花SAP-數據源-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斯卡拉源到本地/文件/位置/目標/斯卡拉-2.10 /類... [錯誤]壞的符號引用。 ExtendableSQLContext.class中的簽名指的是包org.apache.spark.sql中的SQLContext [錯誤],它不可用。 [error]它可能完全從當前類路徑丟失,或 上的版本[錯誤]類路徑可能與編譯ExtendableSQLContext.class時使用的版本不兼容。

如何克服這個錯誤。我對scala,sbt,spark和vora是新手。

回答

1

您可能忽略這種相關性:

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

+0

感謝。它幫助了我。 – Subramanian

0

是,實際的文件路徑?它看起來不尋常的,我...

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

+0

我必須更改build.sbt以將其包含在胖罐中 – Subramanian