【问题标题】:build.sbt: how to add spark dependenciesbuild.sbt:如何添加 spark 依赖项
【发布时间】:2016-10-23 19:30:14
【问题描述】:

您好,我正在尝试在下面的 build.sbt 文件中下载 spark-corespark-streamingtwitter4jspark-streaming-twitter

name := "hello"

version := "1.0"

scalaVersion := "2.11.8"

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

libraryDependencies ++= Seq(
  "org.twitter4j" % "twitter4j-core" % "3.0.3",
  "org.twitter4j" % "twitter4j-stream" % "3.0.3"
)

libraryDependencies += "org.apache.spark" % "spark-streaming-twitter_2.10" % "0.9.0-incubating"

我只是在网上使用了这个libraryDependencies,所以我不确定要使用哪个版本等。

有人可以向我解释我应该如何修复这个 .sbt 文件。我花了几个小时试图弄清楚,但没有一个建议奏效。我通过自制软件安装了scala,我的版本是2.11.8

我所有的错误都是关于:

Modules were resolved with conflicting cross-version suffixes.

【问题讨论】:

    标签: scala apache-spark sbt spark-streaming


    【解决方案1】:

    问题是您混合了 Scala 2.11 和 2.10 工件。你有:

    scalaVersion := "2.11.8"
    

    然后:

    libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.4.1"
    

    需要2.10 工件的地方。您也在混合使用 Spark 版本,而不是使用一致的版本:

    // spark 1.6.1
    libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.1"
    
    // spark 1.4.1
    libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.4.1"
    
    // spark 0.9.0-incubating
    libraryDependencies += "org.apache.spark" % "spark-streaming-twitter_2.10" % "0.9.0-incubating"
    

    这里有一个build.sbt 可以解决这两个问题:

    name := "hello"
    
    version := "1.0"
    
    scalaVersion := "2.11.8"
    
    val sparkVersion = "1.6.1"
    
    libraryDependencies ++= Seq(
      "org.apache.spark" %% "spark-core" % sparkVersion,
      "org.apache.spark" %% "spark-streaming" % sparkVersion,
      "org.apache.spark" %% "spark-streaming-twitter" % sparkVersion
    )
    

    您也不需要手动添加 twitter4j 依赖项,因为它们是由 spark-streaming-twitter 传递添加的。

    【讨论】:

    • 非常感谢!一个简单的问题是 scala (2.11.8) 的版本是否可以与所有版本为 1.6.1 的 spark 库一起使用?
    • 是的。 Spark 1.6.1 包含 2.10 和 2.11 版本的 scala。
    • 对此我还有一个问题。对于那个很抱歉!当我执行sbt run 时,似乎没有下载第三个依赖项"org.apache.spark" %% "spark-core" % sparkVersion,因此在src/main/scala/example.scala 的scala 文件中,初始化我的spark 上下文时出现错误:16/06/21 21:18:14 ERROR SparkContext: Error initializing SparkContext. java.net.UnknownHostException: LM-SFA-11002982: LM-SFA-11002982: nodename nor servname provided, or not known
    • 这个错误与是否下载依赖无关。您应该打开另一个问题来解决这个疑问。
    【解决方案2】:

    它对我有用:

    name := "spark_local"
    
    version := "0.1"
    
    scalaVersion := "2.11.8"
    
    
    libraryDependencies ++= Seq(
      "org.twitter4j" % "twitter4j-core" % "3.0.5",
      "org.twitter4j" % "twitter4j-stream" % "3.0.5",
      "org.apache.spark" %% "spark-core" % "2.0.0",
      "org.apache.spark" %% "spark-sql" % "2.0.0",
      "org.apache.spark" %% "spark-mllib" % "2.0.0",
      "org.apache.spark" %% "spark-streaming" % "2.0.0"
    )
    

    【讨论】:

      猜你喜欢
      • 2020-07-17
      • 1970-01-01
      • 2019-12-09
      • 2014-09-18
      • 2020-01-01
      • 2017-08-17
      • 2019-08-12
      • 1970-01-01
      • 2020-11-09
      相关资源
      最近更新 更多