在 IntelliJ IDE 中将 Spark 与 Scala 项目集成时出错
Posted
技术标签:
【中文标题】在 IntelliJ IDE 中将 Spark 与 Scala 项目集成时出错【英文标题】:Error on integrating Spark with Scala project in IntelliJ IDE 【发布时间】:2016-02-28 03:09:30 【问题描述】:我在 IntelliJ IDE 中创建了一个简单的 SBT 项目,在 build.sbt
中具有以下库依赖项:
import _root_.sbt.Keys._
name := "untitled"
version := "1.0"
scalaVersion := "2.11.7"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "1.5.1",
"org.apache.spark" %% "spark-sql" % "1.5.1" ,
"org.apache.spark" %% "spark-mllib" % "1.5.1")
目标是导入 Spark 的 Spark 和 MLLIB,然后按照 here 的说明创建一个 Scala 对象。
但是,导入时出现以下错误:
SBT project import [warn] Multiple dependencies with the same organization/name but different versions. To avoid conflict, pick one version: [warn] *
org.scala-lang:scala-compiler:(2.11.0, 2.11.7) [警告] * org.apache.commons:commons-lang3:(3.3.2, 3.0) [警告] * jline:jline:(0.9.94, 2.12.1) [警告] * org.scala-lang.modules:scala-parser-combinators_2.11:(1.0.1, 1.0.4) [警告] * org.scala-lang.modules:scala-xml_2.11:(1.0.1, 1.0.4) [警告] * org.slf4j:slf4j-api:(1.7.10, 1.7.2) [警告] [失败] net.sourceforge.f2j#arpack_combined_all;0.1!arpack_combined_all.jar(src): (0ms) [警告] ==== 本地:尝试 [警告] C:\Users\Cezar.ivy2\local\net.sourceforge.f2j\arpack_combined_all\0.1\srcs\arpack_combined_all-sources.jar [警告] ==== 公开:尝试过 [警告] https://repo1.maven.org/maven2/net/sourceforge/f2j/arpack_combined_all/0.1/arpack_combined_all-0.1-sources.jar [警告] [失败] javax.xml.bind#jsr173_api;1.0!jsr173_api.jar(doc): (0ms) [警告] ==== 本地:尝试 [警告] C:\Users\Cezar.ivy2\local\javax.xml.bind\jsr173_api\1.0\docs\jsr173_api-javadoc.jar [警告] ==== 公开:尝试过 [警告] https://repo1.maven.org/maven2/javax/xml/bind/jsr173_api/1.0/jsr173_api-1.0-javadoc.jar [警告] [失败] javax.xml.bind#jsr173_api;1.0!jsr173_api.jar(src): (0ms) [警告] ==== 本地:尝试 [警告] C:\Users\Cezar.ivy2\local\javax.xml.bind\jsr173_api\1.0\srcs\jsr173_api-sources.jar [警告] ==== 公开:尝试过 [警告] https://repo1.maven.org/maven2/javax/xml/bind/jsr173_api/1.0/jsr173_api-1.0-sources.jar [警告] :::::::::::::::::::::::::::::::::::::::::::::: [警告] :: 失败 下载 :: [警告] :: ^ 详情请参阅解决消息 ^ :: [警告] :::::::::::::::::::::::::::::::::::::::::::::: [警告] :: net.sourceforge.f2j#arpack_combined_all;0.1!arpack_combined_all.jar(src) [警告] :: javax.xml.bind#jsr173_api;1.0!jsr173_api.jar(doc) [警告] :: javax.xml.bind#jsr173_api;1.0!jsr173_api.jar(src) [警告] ::::::::::::::::::::::::::::::::::::::::::::::
【问题讨论】:
检查您的 Spark 安装使用的是哪个 Scala 版本! @eliasah:如何检查?我可以看到“正在运行 Spark 版本 1.5.1”并且我正在使用 Scala 2.11 您是使用预构建版本还是自己构建的? @eliasah:我使用预建版本。 通常预编译版本支持 Scala 2.10。您必须自己构建它。您可以在官方文档中找到该过程。 【参考方案1】:Spark 不适用于 Scala 2.11。它使用 Scala 2.10,因此您需要使用兼容的 Scala 版本(请参阅http://spark.apache.org/docs/latest/)。
或者,正如@eliasah 在评论中提到的那样,您也可以自己构建 Spark。关于如何构建 Spark 的说明可以在http://spark.apache.org/docs/latest/building-spark.html找到。
【讨论】:
我不同意你的看法。如果您使用正确的构建,Spark 可以与 Scala 2.11 一起使用。 @eliasah 这是根据文档,当然它适用于 OP 的问题中引用的 Spark 的预构建版本。 查看我对这个问题的评论。因此,您的假设是错误的。您应该添加“预建版本” 无论哪种情况,虽然我同意自己构建 Spark 是 a 解决方案,但它并不是解决问题的唯一方法。就我自己而言(我在预装 Spark 的 Amazon EMR 上运行所有东西),将我的代码降级到 Scala 2.10.x 更容易,这也将解决问题。我将把它留给@Klausos 来决定他更喜欢哪种解决方案。 我从未假装这是唯一的解决方案,这就是为什么我将其作为评论给出。您也可以使用我的评论更新您的答案,我会投票!以上是关于在 IntelliJ IDE 中将 Spark 与 Scala 项目集成时出错的主要内容,如果未能解决你的问题,请参考以下文章