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】:

SparkSessionspark-sql 库中可用。 您必须将 spark-sql 依赖项添加到构建中。

libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.2.1"

【讨论】:

以上是关于sbt 在运行 Spark hello world 代码时出错?的主要内容,如果未能解决你的问题,请参考以下文章

spark大数据处理之hello world

spark 2.4 java8 hello world

Scala学习测试类

无法使用 sbt 在本地运行 spark 作业,但可以在 IntelliJ 中运行

我们应该如何解决 Spark 的 sbt 文件中的本地依赖关系

mapreduce输入数据为helloworldbyword的切片处理结果