【发布时间】:2020-07-17 19:54:14
【问题描述】:
我是 Spark 的新手(使用 v2.4.5),并且仍在尝试找出添加外部依赖项的正确方法。在尝试将 Kafka 流添加到我的项目时,我的 build.sbt 看起来像这样:
name := "Stream Handler"
version := "1.0"
scalaVersion := "2.11.12"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.4.5" % "provided",
"org.apache.spark" % "spark-streaming_2.11" % "2.4.5" % "provided",
"org.apache.spark" % "spark-streaming-kafka-0-10_2.11" % "2.4.5"
)
这构建成功,但是当使用spark-submit 运行时,我得到一个java.lang.NoClassDefFoundError 和KafkaUtils。
通过--packages 选项传递依赖项,我能够让我的代码工作,如下所示:
$ spark-submit [other_args] --packages "org.apache.spark:org.apache.spark:spark-streaming-kafka-0-10_2.11:2.4.5"
理想情况下,我想在build.sbt 中设置所有依赖项,但我不确定我做错了什么。任何建议将不胜感激!
【问题讨论】:
-
文档说 spark-core 应该被定义为
spark-core_2.11spark.apache.org/docs/2.2.0/…
标签: scala apache-spark sbt spark-streaming