【问题标题】:"unresolved dependency" for Spark 2.0.1 on SBTSBT 上 Spark 2.0.1 的“未解决的依赖关系”
【发布时间】:2017-03-15 21:07:52
【问题描述】:

使用我的 build.sbt

version := "1.0"
scalaVersion := "2.11.8"

// https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.11
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.0.1"

我尝试让 Spark 进入我的 sbt 0.13 项目,但 IntelliJ 2016.2.5 给出错误“未解决的依赖项”。我做错了什么?

没有代理,如果我说“2.0.0”而不是“2.0.1”,它就可以工作,但这不是很好......

另外:它似乎在 CLI 中有效,但在 IntelliJ 中无效。

【问题讨论】:

  • 添加解析器。查看答案了解更多信息
  • 你有代理吗?你能解决其他版本的火花吗?您是否能够解析任何其他依赖项的其他版本?
  • @JustinPihony:没有代理。是的,它适用于 2.0.0。
  • 也许清除您的 intellij 目录并重试?否则你可能会更好地打开 intellij 自己的问题
  • @JustinPihony:“清除你的 intellij 目录”是什么意思?

标签: scala apache-spark intellij-idea dependencies sbt


【解决方案1】:

开箱即用的 SBT 仅加载 https://repo1.maven.org/maven2/ 存储库,据我所知目前没有 Apache Spark。也许您构建的另一个项目从其他 repo 获取它,现在使用本地 Ivy 缓存解决了它?

您可以通过向您的项目添加另一个 maven 存储库来解决该问题,例如:

resolvers ++= Seq(
  Resolver sonatypeRepo "public",
  Resolver typesafeRepo "releases",
)

更新:如果您想使用 MavenRepository(您开箱即用),您可以尝试添加:

resolvers += "MavenRepository" at "https://mvnrepository.com/"

【讨论】:

  • 感谢您的回复 :-),不幸的是您的解决方案不起作用。此外,我很确定我没有用 Spark 和 SBT 构建任何东西。到目前为止,我只玩过 Jupyter 和 apache toree 内核。顺便说一句:mvnrepository.com/artifact/org.apache.spark/spark-core_2.11 看起来有 Apache Spark - 即使在 2.0.1 中也是如此。
  • 是的,但默认情况下,Ivy 使用这个:repo1.maven.org/maven2/archetype-catalog.xml。所以你需要添加一些拥有它的存储库。
  • 注意,但对于 Scala 库,您可以像 "org.apache.spark" %% "spark-core" % "2.0.1" - %% 这样编写它,让您无需在最后编写 scala 版本;)
  • 哪个有?你提供的似乎没有。至少我仍然得到“未解决的依赖”。
  • 我更新了答案,尝试添加你检查的那个。
【解决方案2】:

我目前正在使用这个 build.sbt 来获取 spark2 依赖项,但我似乎没有得到任何结果,因为代码失败并出现异常 ss 等

C:\Users\marco\SparkExamples\src\main\scala\MachineLearningExamples.scala:3: 对象 mllib 不是包 org.apache.spark 的成员 [错误] 导入 o​​rg.apache.spark.mllib.regression.LabeledPoint [错误] ^ [错误] C:\Users\marco\SparkExamples\src\main\scala\MachineLearningExamples.scala:4: 对象分类不是包 org.apache.spark.ml 的成员 [错误] 导入 o​​rg.apache.spark.ml.classification._ [错误] ^

这是我的 build.sbt .... 想知道是否有人可以尝试排除我本地机器上的 sbt 问题。谢谢

    name := "SparkExamples"
    version := "1.0"
    scalaVersion := "2.11.8"
    val sparkVersion = "2.0.1"


    libraryDependencies += "junit" % "junit" % "4.8" % "test"
    libraryDependencies ++= Seq("org.slf4j" % "slf4j-api" % "1.7.5",
                        "org.slf4j" % "slf4j-simple" % "1.7.5",
                        "org.clapper" %% "grizzled-slf4j" % "1.0.2")
    libraryDependencies += "org.apache.spark"%%"spark-core"   % sparkVersion 
    libraryDependencies += "org.apache.spark"%%"spark-streaming"   % sparkVersion 
    libraryDependencies += "org.apache.spark"%%"spark-mllib"   % sparkVersion 
    libraryDependencies += "org.apache.spark"%%"spark-streaming-flume-sink" % sparkVersion     
    libraryDependencies += "org.apache.spark"%%"spark-sql"   % sparkVersion 


    resolvers += "MavenRepository" at "https://mvnrepository.com/"

如果我使用 sparkVersion 1.6.0(对 spark-streaming-flume 依赖项稍作调整)一切正常

【讨论】:

    【解决方案3】:

    Mateusz Kubuszok 的答案很接近。我只是将http://central.maven.org/maven2 添加到我的解析器,而不是https://mvnrepository.com/

    resolvers  += "MavenRepository" at "http://central.maven.org/maven2"
    

    这似乎有很多火花依赖。

    【讨论】:

      猜你喜欢
      • 2017-08-26
      • 2017-11-11
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 2012-02-02
      • 2017-10-29
      • 2014-12-18
      • 2014-01-12
      相关资源
      最近更新 更多