我正在尝试在IntelliJ中运行一个简单的scala程序。
我的build.sbt看起来像这样:
name := "UseThis"
version := "0.1"
scalaVersion := "2.12.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.2.0"
我的导入代码如下所示:
package WorkWork.FriendsByAge
import com.sun.glass.ui.Window.Level
import com.sun.istack.internal.logging.Logger
import org.apache.spark._
import org.apache.spark.SparkContext._
import org.apache.log4j._
我不知道导入失败的原因。它告诉我依赖项无法加载或找不到,但我根据需要将该行放在build.sbt中。我还需要做一些其他的步骤吗?我安装了火花。它是构建行末尾的版本说明吗?我甚至不知道如何检查我的火花版本。 我正在尝试自学Scala(不是一个菜鸟,我知道Python,R,各种各样的SQL,C#),但我的话甚至设置它几乎是不可能的,显然它甚至运行也是如此。有什么想法吗?
答案 0 :(得分:4)
在此处查看此页面:Maven Central (Apache Spark core)
除非您设置了其他一些存储库,否则sbt
将要加载的依赖项通常来自那里。
有version
列,其中包含2.2.1
等数字,然后会出现一个scala
列,其中包含2.11
,2.10
等数字。为了使spark和scala一起工作,你必须从这个表中选择一个有效的组合。
自2018年2月28日起,没有适用于scala 2.12.4的Spark版本。 1.2.0
适用的scala的最新版本为2.11
。因此,您可能希望将scala版本设置为2.11
。
另请注意您的SBT中的%%
语法
"org.apache.spark" %% "spark-core" % "1.2.0"
会自动将后缀_2.12
附加到artifact-id-part。由于没有spark-core_2.12
,因此无法解析依赖关系,也无法在代码中导入任何内容。
顺便说一句:火花1.2和火花1.3之间存在很大差异,然后1.x和2.x之间又有很大差异。它真的必须是1.2吗?
答案 1 :(得分:2)
因为Spark 1.2不适用于Scala 2.12
https://mvnrepository.com/artifact/org.apache.spark/spark-core