使用spark intelliJ

时间:2017-07-14 10:18:55

标签: scala apache-spark intellij-idea jvm

我想在IntelliJ

中运行此示例
  import org.apache.spark.SparkContext
  import org.apache.spark.SparkConf
  object LAspark {
      def main(args: Array[String]) {
        val logFile = "/Users/H/Desktop/sparktest.txt" 
        val conf = new SparkConf().setAppName("Simple 
 Application").setMaster("local[*]")
        val sc = new SparkContext(conf)
        val logData = sc.textFile(logFile, 2).cache()
        val numAs = logData.filter(line => line.contains("a")).count()
        val numBs = logData.filter(line => line.contains("b")).count()
        println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
     }
 }

这是我得到的错误:

Exception in thread "main" java.lang.ClassNotFoundException: LAspark
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123)

我的build.sbt是这样的:

name := "fridaytest"

version := "1.0"

scalaVersion := "2.11.8"

在全球图书馆中,我使用了scala-sdk-2.11.8。我花了几个小时在这上面,仍然无法弄清问题是什么。有人可以帮忙吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

这已经解决了。在看到Ramesh Maharjan的评论之后,我查看了项目目录并意识到我的代码在scala2.12文件夹下,因为那是我在切换到2.11之前使用的sdk。当您更改在“项目结构”中使用的JDK版本时,IDE将生成不同的文件夹。我将代码移动到文件夹2.11,它工作正常。事实证明文件夹很重要..