【问题标题】:sbt error: object spark is not a member of package org.apachesbt 错误:对象 spark 不是包 org.apache 的成员
【发布时间】:2020-10-27 07:13:19
【问题描述】:

我安装了sbt-1.3.4.msi,在尝试构建示例SparkPi.scala 应用程序时,出现以下错误:

C:\myapps\sbt\sparksample>sbt
[info] Loading project definition from C:\myapps\sbt\sparksample\project
[info] Compiling 1 Scala source to C:\myapps\sbt\sparksample\project\target\scala-2.12\sbt-1.0\classes ...
[error] C:\myapps\sbt\sparksample\project\src\main\scala\SparkPi.scala:3:19: object spark is not a member of package org.apache
[error] import org.apache.spark._
[error]                   ^
[error] C:\myapps\sbt\sparksample\project\src\main\scala\SparkPi.scala:8:20: not found: type SparkConf
[error]     val conf = new SparkConf().setAppName("Spark Pi")
[error]                    ^
[error] C:\myapps\sbt\sparksample\project\src\main\scala\SparkPi.scala:9:21: not found: type SparkContext
[error]     val spark = new SparkContext(conf)
[error]                     ^
[error] three errors found
[error] (Compile / compileIncremental) Compilation failed

SparkPi.scala 文件位于C:\myapps\sbt\sparksample\project\src\main\scala 中(如上面的错误消息所示)。

我在这里错过了什么?

C:\myapps\sbt\sparksample\sparksample.sbt文件如下:

name := "Spark Sample"

version := "1.0"

scalaVersion := "2.12.10"

libraryDependencies += "org.apache.spark" %% "spark-core" % "3.0.0"

【问题讨论】:

    标签: scala apache-spark sbt


    【解决方案1】:

    C:\myapps\sbt\sparksample\project\src\main\scala 目录下有 SparkPi.scala 文件

    这就是问题所在。您在 project 目录下拥有 sbt 本身拥有的 Scala 文件(不是您的 sbt 管理的 Scala 项目)。

    SparkPi.scala 和其他Scala 文件移动到C:\myapps\sbt\sparksample\src\main\scala

    【讨论】:

    • 经过上述修复后,运行正常,但 C:\myapps\sbt\sparksample\target 中没有 .jar 文件。相反,我在 C:\myapps\sbt\sparksample\target\streams_global\ivyConfiguration_global\streams 中看到了一个名为“out”的文件。
    • 通过将 sbt 文件的行更改为 libraryDependencies += "org.apache.spark" %% "spark-core" % "3.0.0" 解决了这个问题
    • @frosty 感谢您接受我的回答!非常感激。至于您的“修复”,我不同意,即 += 运算符用于单个依赖项,而 ++= 用于零、一个或多个依赖项。在您的情况下,它们是等效的。顺便说一句,您不需要查看 C:\myapps\sbt\sparksample\target\streams_global 目录,因为它是 sbt 内部的(不适用于用户)。
    猜你喜欢
    • 2016-09-25
    • 2019-03-31
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    相关资源
    最近更新 更多