2015-08-28 137 views
1

我在我的第一個項目中做了Spark的依賴項。但是當我嘗試用Spark創建一個新項目時,我的SBT不會導入org.apache.spark的外部jar。因此,IntelliJ Idea會提供「無法解析符號」的錯誤。 我已經嘗試從頭開始創建一個新項目並使用自動導入,但沒有任何工作。當我嘗試編譯時,我得到了「對象apache不是程序包組織成員」的消息。我build.sbt看起來是這樣的:IntelliJ Idea 14:無法解析符號spark

name := "hello" 
version := "1.0" 
scalaVersion := "2.11.7" 
libraryDependencies += "org.apache.spark" % "spark-parent_2.10" % "1.4.1" 

我的印象中,有可能是錯誤的東西與我的SBT設置,但它已經工作一次。除了外部庫一切都是一樣的... 我也嘗試導入我的Spark依賴項的pom.xml文件,但這也不起作用。 提前謝謝!

+0

'scalaVersion:=「2.11.7」'可能與''spark-parent _ ** 2.10 **「發生衝突''嘗試'spark-parent_2.11' –

+0

我也一直在想這個,但是這不起作用。它已經與火花父母2.10 ... –

+0

它在終端編譯?你使用默認的解析器或某種代理(Nexus,Artifactory)?什麼是日誌輸出? –

回答

0

我在build.sbt使用

scalaVersion := "2.11.7" 

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.4.1" 

,它爲我工作。

0

您的庫的依賴性與您使用的scala版本衝突,您需要使用2.11才能正常工作。正確的依賴將是:

scalaVersion := "2.11.7" 
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "1.4.1" 

請注意,您需要更改spark_parent到spark_core

+0

正確。或者他可以將第一個'%'運算符加倍併除去'_2.11'(除了中央沒有Spark-parent的2.11版本) – LMeyer

0

我也有類似的問題。這似乎是因爲build.sbt文件指定了scala的錯誤版本。

如果您運行spark-shell它會說在某些時候Spark使用的Scala版本,例如,

Using Scala version 2.11.8 

然後,我編輯build.sbt文件中的指向該版本的行,它工作。

0

名稱:= 「SparkLearning」

版本:= 「0.1」

scalaVersion:= 「2.12.3」

//附加庫 libraryDependencies + =「org.apache.spark 「% 」火花streaming_2.10「 % 」1.4.1「

+0

我正在使用Intellij2017.2社區版本,它適用於我 –

1

這適用於我 - >

name := "ProjectName" 
version := "0.1" 
scalaVersion := "2.11.11" 

libraryDependencies ++= Seq(
    "org.apache.spark" % "spark-core_2.11" % "2.2.0", 
    "org.apache.spark" % "spark-sql_2.11" % "2.2.0", 
    "org.apache.spark" % "spark-mllib_2.10" % "1.1.0" 
) 
相關問題