【问题标题】:Error on integrating Spark with Scala project in IntelliJ IDE在 IntelliJ IDE 中将 Spark 与 Scala 项目集成时出错
【发布时间】: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。您必须自己构建它。您可以在官方文档中找到该过程。

标签: java scala intellij-idea apache-spark


【解决方案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 来决定他更喜欢哪种解决方案。
  • 我从未假装这是唯一的解决方案,这就是为什么我将其作为评论给出。您也可以使用我的评论更新您的答案,我会投票!
猜你喜欢
  • 2016-02-27
  • 2021-01-29
  • 2018-07-06
  • 2020-01-11
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
  • 2019-06-17
  • 1970-01-01
相关资源
最近更新 更多