sbt 在运行 Spark hello world 代码时出错?
Posted
技术标签:
【中文标题】sbt 在运行 Spark hello world 代码时出错?【英文标题】:sbt got error when run Spark hello world code? 【发布时间】:2017-10-07 23:46:07 【问题描述】:运行 spark hello world 程序时出现以下错误。
[信息] 更新 file:/C:/Users/user1/IdeaProjects/sqlServer/sqlserver... [信息] 解决 org.apache.spark#spark-core_2.12;2.1.1 ... [警告] 未找到模块:org.apache.spark#spark-core_2.12;2.1.1 [警告] ==== 本地:尝试过 [警告] C:\Users\user1\.ivy2\local\org.apache.spark\spark-core_2.12\2.1.1\ivys\ivy.xml [警告] ==== 公开:试过 [警告] https://repo1.maven.org/maven2/org/apache/spark/spark-core_2.12/2.1.1/spark-core_2.12-2.1.1.pom [警告] ==== 本地预加载常春藤:尝试过 [警告] C:\Users\user1\.sbt\preloaded\org.apache.spark\spark-core_2.12\2.1.1\ivys\ivy.xml [警告] ==== 本地预加载:已尝试 [警告] 文件:/C:/Users/user1/.sbt/preloaded/org/apache/spark/spark-core_2.12/2.1.1/spark-core_2.12-2.1.1.pom [信息] 正在解决 jline#jline;2.14.3 ... [警告] :::::::::::::::::::::::::::::::::::::::::::::: [警告] :: 未解决的依赖关系 :: [警告] :::::::::::::::::::::::::::::::::::::::::::::: [警告] :: org.apache.spark#spark-core_2.12;2.1.1:未找到 [警告] :::::::::::::::::::::::::::::::::::::::::::::: [警告] [警告] 注意:未解析的依赖路径: [警告] org.apache.spark:spark-core_2.12:2.1.1 (C:\Users\user1\IdeaProjects\sqlServer\build.sbt#L7-8) [警告] +- mpa:mpa_2.12:1.0 [trace] 堆栈跟踪被抑制:最后运行 *:update 以获得完整输出。 [错误] (*:update) sbt.ResolveException: 未解决的依赖项: org.apache.spark#spark-core_2.12;2.1.1: 未找到 [错误] 总时间:1 s,完成时间 2017 年 5 月 9 日 11:05:44 AM这里是build.sbt,
name := "Mpa"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.1"
我的 Spark webcome 消息。
欢迎来到 ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ 2.1.1 版 /_/ 使用 Scala 版本 2.11.8(Java HotSpot(TM) 64 位服务器 VM,Java 1.8.0_111) 输入表达式以对其进行评估。 键入 :help 以获取更多信息。更新:
我将built.sbt
更改为
name := "Mpa"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core_2.11" % "2.1.0"
还是得到了
[信息] 更新 file:/C:/Users/user1/IdeaProjects/sqlServer/sqlserver... [信息] 解决 org.apache.spark#spark-core_2.11_2.11;2.1.0 ... [警告] 未找到模块:org.apache.spark#spark-core_2.11_2.11;2.1.0 [警告] ==== 本地:尝试过 [警告] C:\Users\user1\.ivy2\local\org.apache.spark\spark-core_2.11_2.11\2.1.0\ivys\ivy.xml [警告] ==== 公开:试过 [警告] https://repo1.maven.org/maven2/org/apache/spark/spark-core_2.11_2.11/2.1.0/spark-core_2.11_2.11-2.1.0.pom [警告] ==== 本地预加载常春藤:尝试过 [警告] C:\Users\user1\.sbt\preloaded\org.apache.spark\spark-core_2.11_2.11\2.1.0\ivys\ivy.xml [警告] ==== 本地预加载:已尝试 [警告] 文件:/C:/Users/user1/.sbt/preloaded/org/apache/spark/spark-core_2.11_2.11/2.1.0/spark-core_2.11_2.11-2.1.0.pom [信息] 正在解决 jline#jline;2.12.1 ... [警告] :::::::::::::::::::::::::::::::::::::::::::::: [警告] :: 未解决的依赖关系 :: [警告] :::::::::::::::::::::::::::::::::::::::::::::: [警告] :: org.apache.spark#spark-core_2.11_2.11;2.1.0: 未找到 [警告] :::::::::::::::::::::::::::::::::::::::::::::: [警告] [警告] 注意:未解析的依赖路径: [警告] org.apache.spark:spark-core_2.11_2.11:2.1.0 (C:\Users\user1\IdeaProjects\sqlServer\build.sbt#L7-8) [警告] +- mpa:mpa_2.11:1.0 [trace] 堆栈跟踪被抑制:最后运行 *:update 以获得完整输出。 [错误](*:更新)sbt.ResolveException:未解决的依赖项:org.apache.spark#spark-core_2.11_2.11;2.1.0:未找到 [错误] 总时间:1 s,完成时间 2017 年 5 月 9 日 1:01:01 PM【问题讨论】:
UNRESOLVED DEPENDENCIES error while trying to create jar的可能重复 @Harald 我在您的评论中使用了问题中的答案,但仍然无法正常工作。答案是三年前发布的。 四年后我也遇到了同样的问题。为您的 scala 版本使用正确的 spark-core 版本很重要。可以在这里找到合适的版本表mvnrepository.com/artifact/org.apache.spark/spark-core。 【参考方案1】:您在built.sbt 文件中有错误,您必须将%%
更改为%
:
name := "Mpa"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" % "spark-core" % "2.1.1"
%%
要求 Sbt 将当前的 scala 版本添加到工件中
您可以通过spark-core_2.11
和%
来解决问题。
// https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.11
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.1.0"
希望这会有所帮助!
【讨论】:
我更改了built.sbt
中的最后一行,但仍然出现错误`[warn] 注意:未解决的依赖关系路径:[warn] org.apache.spark:spark-core_2.11_2.11:2.1。 0 (C:\Users\WangYi\IdeaProjects\sqlServer\build.sbt#L7-8) [warn] +- mpa:mpa_2.11:1.0 [trace] 堆栈跟踪被抑制:最后运行 :update 以获得完整输出。 [错误] (:update) sbt.ResolveException: unresolved dependency: org.apache.spark#spark-core_2.11_2.11;2.1.0: not found [错误] 总时间: 22 s, 5 月 9 日完成, 2017 年 12:55:35 PM1
1) 仔细检查%
符号的数量。如果您在依赖项中明确指定 scala 版本,请显式使用单个 %
: libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.1.0"
。或者您可以使用 %%
表示法来使用来自 scalaVersion
属性的版本: libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"
。看来你搞混了。
2) sbt 也从某个地方选择了 scala 2.12 版本。从构建文件中删除所有提及2.12
。
@simpadjo 将 %%
更改为 %
有效。与您的 cmets 中的 (2) 不完全一样。我没有在 build.sbt 中指定 2.12
?
我认为“spark-core_2.11”部分是最重要的。我真的错过了这一点,并在这个问题上花费了大量时间。【参考方案2】:
我遇到了同样的错误。
build.sbt
name := "Simple Project"
version := "1.0"
scalaVersion := "2.12.3"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.2.0"
只需将 scalaVersion 更改为 2.11.8 或更低版本。它有效。
【讨论】:
这对我有用。起初我使用了 'scalaVersion' 2.13.2。但它一直告诉我未找到错误。我现在使用的是 2.11.8。一切顺利。【参考方案3】:我遇到了同样的错误,并通过以下步骤解决了它。基本上,文件名与 sbt 配置不匹配。 - 检查 $SPARK_HOME/jars 中 spark core jar 的文件名(它是 spark-core_2.11-2.1.1.jar)。 - 安装 scala 2.11.11. - 将 build.sbt 编辑为 scalaVersion := "2.11.11"。
【讨论】:
这正是您需要做的,例如如果您的 spark 是 2.2.0,您很可能会拥有 spark-core_2.11-2.2.0.jar,因此您正在查看 2.11.x scala,假设您拥有 2.2 spark:scalaVersion:以下 sbt 构建将适用于您: = "2.11.12" libraryDependencies ++= val sparkVer = "2.2.0" Seq( "org.apache.spark" %% "spark-core" % sparkVer ) 【参考方案4】:适用于 2.11.12 的版本控制对。
scalaVersion := "2.11.12"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.3.2",
"org.apache.spark" %% "spark-sql" % "2.3.2"
)
【讨论】:
【参考方案5】:这对我有用。示例 build.sbt
name := "testproj"
version := "0.1"
scalaVersion := "2.11.9"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.2.0"
【讨论】:
【参考方案6】:SparkSession 在 spark-sql 库中可用。 您必须将 spark-sql 依赖项添加到构建中。
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.2.1"
【讨论】:
以上是关于sbt 在运行 Spark hello world 代码时出错?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 sbt 在本地运行 spark 作业,但可以在 IntelliJ 中运行