2017-08-03 133 views
2

我想讓Apache Spark使用IntelliJ。我已經在IntelliJ中創建了一個SBT項目,並完成了以下工作: 1.轉到文件 - >項目結構 - >庫 2.單擊中間部分的'+',單擊Maven,單擊Maven Repository中的下載庫,鍵入文本'spark-core'和org.apache.spark:spark-core_2.11:2.2.0,這是Spark的最新版本 我將jar文件和源代碼下載到項目文件夾中的./lib中 3. Spark庫現在顯示在庫列表中 4.然後,我右鍵單擊org.apache.spark:spark-core_2.11:2.2.0並單擊添加到項目並添加到模塊 現在當我點擊左邊的Modules,然後是我的主項目文件夾,然後右邊的Dependencies選項卡我可以將外部庫看作Maven庫,但是在單擊Apply後,重新構建項目,然後單擊r電子啓動IntelliJ,它不會在項目中顯示爲外部庫。因此我無法訪問Spark API命令。 請問我做錯了什麼?我已經查看了IntelliJ和其他一百個來源的所有文檔,但找不到答案。試圖讓Apache Spark使用IntelliJ

另外,我是否還需要在build.SBT文件中包含以下文本,並將Apache Spark指定爲外部庫依賴項?我假設我需要將代碼包含在build.SBT文件中,或手動添加Spark作爲外部依賴項,但不能同時添加Spark。 我包括這個代碼在我build.SBT文件:

name := "Spark_example" 

version := "1.0" 

scalaVersion := "2.12.3" 

val sparkVersion = "2.0.0" 

libraryDependencies ++= Seq(
    "org.apache.spark" %% "spark-core" % sparkVersion, 
    "org.apache.spark" %% "spark-streaming" % sparkVersion, 
    "org.apache.spark" %% "spark-sql" % sparkVersion 
) 

我得到一個錯誤:sbt.ResolveException:未解析的依賴性:org.apache.spark#火花core_2.12; 2.2.0:找不到

請幫忙!謝謝

+0

'scalaVersion:= 「2.11.8」'應該工作。 – mrsrinivas

+0

謝謝,它的確如此,但我得到了一些關於Spark v2.0.0不兼容的警告,所以我嘗試了2.2.0,而且似乎處理了其中的一些,但並非全部都是 – LucieCBurgess

+0

總是推薦使用依賴管理工具(SBT, Maven,Gradle)添加具有範圍的外部罐(編譯/測試/提供等)。 – mrsrinivas

回答

4

Spark沒有爲Scala版本2.12.x構建。所以設置斯卡拉版本2.11.x

scalaVersion := "2.11.8" 

val sparkVersion = "2.0.0" 

libraryDependencies ++= Seq(
    "org.apache.spark" %% "spark-core" % sparkVersion, 
    "org.apache.spark" %% "spark-streaming" % sparkVersion, 
    "org.apache.spark" %% "spark-sql" % sparkVersion 
)