使用错误的 Scala 版本创建 Spark 应用程序
Creating Spark application using wrong Scala version
我按照此处的说明进行操作:https://spark.apache.org/docs/latest/quick-start.html 创建一个简单的应用程序,它将 运行 在本地独立 Spark 构建上。
在我的系统中,我有 Scala 2.9.2 和 sbt 0.13.7。
当我在 simple.sbt
中写入以下内容时:
scalaVersion := "2.9.2"
在我使用 sbt package
之后,我得到了错误:
sbt.ResolveException: unresolved dependency: org.apache.spark#spark-core_2.9.2;1.3.1: not found
然而,当我在 simple.sbt
中写入时:
scalaVersion := "2.10.4"
sbt 运行s 成功并且应用程序 运行s 在 Spark 上正常。
这怎么会发生,因为我的系统上没有 scala 2.10.4?
Scala 不是一个包,它是一个在 Java 运行 时间之上执行的库。同样,Scala 编译器 scalac
运行s 在 Java 运行 时间之上。在您的 "system" 中安装一个 Scala 版本是为了方便,但不是必需的。
因此,完全有可能从一个版本的 Scala (2.9.2) 启动 sbt
,但使用完全不同版本的 Scala ( 2.10.x) 通过传递适当的标志,例如 -classpath
.
参见:Can java run a compiled scala code?
正如@noahlz 所说,您的系统上不需要 Scala,因为 sbt 会为您获取它。
您遇到的问题是 Scala 2.9.2 没有 spark-core
版本 1.3.1
。
据我在 Maven Central 中看到的(搜索 spark-core),Scala 2.10 和 2.11 只有 spark-core
的构建。
因此我建议您使用此设置:
scalaVersion := "2.11.6"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.3.1"
如果出于某种原因这对您不起作用,请使用 Scala 2.10.5:
scalaVersion := "2.10.5"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.3.1"
我按照此处的说明进行操作:https://spark.apache.org/docs/latest/quick-start.html 创建一个简单的应用程序,它将 运行 在本地独立 Spark 构建上。
在我的系统中,我有 Scala 2.9.2 和 sbt 0.13.7。
当我在 simple.sbt
中写入以下内容时:
scalaVersion := "2.9.2"
在我使用 sbt package
之后,我得到了错误:
sbt.ResolveException: unresolved dependency: org.apache.spark#spark-core_2.9.2;1.3.1: not found
然而,当我在 simple.sbt
中写入时:
scalaVersion := "2.10.4"
sbt 运行s 成功并且应用程序 运行s 在 Spark 上正常。
这怎么会发生,因为我的系统上没有 scala 2.10.4?
Scala 不是一个包,它是一个在 Java 运行 时间之上执行的库。同样,Scala 编译器 scalac
运行s 在 Java 运行 时间之上。在您的 "system" 中安装一个 Scala 版本是为了方便,但不是必需的。
因此,完全有可能从一个版本的 Scala (2.9.2) 启动 sbt
,但使用完全不同版本的 Scala ( 2.10.x) 通过传递适当的标志,例如 -classpath
.
参见:Can java run a compiled scala code?
正如@noahlz 所说,您的系统上不需要 Scala,因为 sbt 会为您获取它。
您遇到的问题是 Scala 2.9.2 没有 spark-core
版本 1.3.1
。
据我在 Maven Central 中看到的(搜索 spark-core),Scala 2.10 和 2.11 只有 spark-core
的构建。
因此我建议您使用此设置:
scalaVersion := "2.11.6"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.3.1"
如果出于某种原因这对您不起作用,请使用 Scala 2.10.5:
scalaVersion := "2.10.5"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.3.1"