对让Scala在IntelliJ中运行感到困惑?导入错误

时间:2018-02-28 02:14:16

标签: scala apache-spark intellij-idea import

我正在尝试在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#),但我的话甚至设置它几乎是不可能的,显然它甚至运行也是如此。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

在此处查看此页面:Maven Central (Apache Spark core)

除非您设置了其他一些存储库,否则sbt将要加载的依赖项通常来自那里。

version列,其中包含2.2.1等数字,然后会出现一个scala列,其中包含2.112.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)