строить.sbt: как добавить зависимости spark
Привет я пытаюсь скачать spark-core
, spark-streaming
, twitter4j
и spark-streaming-twitter
в построении.SBT файл ниже:
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
через homebrew, и я нахожусь на версии 2.11.8
все мои ошибки были о компании:
Modules were resolved with conflicting cross-version suffixes.
2 ответов
проблема в том, что вы смешиваете артефакты 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
.
это работает для меня:
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"
)