为什么在sbt会话中编译Spark应用程序失败,而#34;对象apache不是包org的成员"?

时间:2017-10-14 12:59:49

标签: apache-spark sbt

我创建了一个包含以下代码的简单文件hello.scala

import org.apache.spark.SparkContext

object HelloSbt extends App {
  println("Welcome to this thing!")
}

请注意,我没有使用IDE。

当我运行命令compile时,我收到此错误:

  

object apache不是包org的成员

没有导入行的代码可以正常工作。

我在网上看了他们说我应该修改build.sbt并添加一些线条。 build.sbt如下所示:

name := "tasky"
version := "0.1.0"
scalaVersion := "2.12.3"
libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % "0.9.0-incubating",
  "org.apache.spark" %% "spark-streaming" % "0.9.0-incubating",
  "org.apache.spark" %% "spark-streaming-twitter" % "0.9.0-incubating")
然而,

compile仍然失败了。为什么呢?

1 个答案:

答案 0 :(得分:1)

在您开始使用sbt并且处于sbt shell之后,对build.sbt的所有更改都是而不是,直到您reload为止{重新加载自会话开始以来所做的任何更改。

sbt:so> help reload
reload

    (Re)loads the project in the current directory.

reload plugins

    (Re)loads the plugins project (under project directory).

reload return

    (Re)loads the root project (and leaves the plugins project).

build.sbt有两个问题。

  1. 您应该使用最新且最好的2.2.0作为Spark依赖项的版本。

  2. Spark支持Scala 2.11,因此scalaVersion应为2.11.8(最多2.11.11)。