在intellij中运行sbt程序集

时间:2014-11-07 15:53:09

标签: intellij-idea sbt

我是scala和sbt的新手,我在intellij中运行项目时遇到了麻烦。这是我尝试导入intellij的示例项目。

https://github.com/snowplow/spark-example-project

如果我从命令行运行sbt assembly命令,但是如果我尝试创建一个"应用程序"它可以正常工作在intellij中运行配置我的依赖项中出现错误:引起:java.lang.ClassNotFoundException:org.apache.hadoop.util.Tool

如何在intellij中运行和调试sbt项目?

2 个答案:

答案 0 :(得分:0)

是的,在Intellij中运行火花是一个挑战:如果这样做的“答案”会根据火花版本进行更改,如果你是在跑掉了主人还是没有。

最好的选择是:

  • “导入项目”,然后导航到spark_home目录。
  • 选择“sbt project”(或者如果您更喜欢“maven项目”)
  • 其他选项应该可以使用默认值。

警告:这个过程从2015年初开始大师工作 - 以及截至2015年3月中旬发布的1.3.0分支。

以前在导入完成后,Intellij项目/模块需要进行一些必要的手术。

答案 1 :(得分:0)

重要的是让你的依赖关系正确。

我喜欢创建一个lib文件夹并将我的spark文件放在那里,例如。

lib中的

spark-streaming_2.10-2.1.0.jar

spark-sql_2.10-2.1.0.jar

spark-core_2.10-2.1.0.jar

然后我的sbt文件:

name := "Project_Name"

version := "1.0"

scalaVersion := "2.10.6"
retrieveManaged := true

// https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10
libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "2.1.0"
// https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.10
libraryDependencies += "org.apache.spark" % "spark-sql_2.10" % "2.1.0"
// https://mvnrepository.com/artifact/org.apache.spark/spark-streaming_2.10
libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "2.1.0" % "provided"

正如您所看到的,我强烈建议您从https://mvnrepository.com

获取.jar和您在sbt文件中粘贴的字符串。

另外,请查看jar文件版本。它们应该是相同的(在我的情况下为2.10-2.1.0)