2017-07-14 38 views
0

我綁來運行的IntelliJClassNotFoundException的使用火花時的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

你可以更新與目錄樹的職位類? –

+1

感謝您的提示!我查看了項目目錄,並意識到我的代碼位於文件夾scala2.12下,因爲那是我在切換到2.11之前使用的sdk ....我將代碼移動到了文件夾2.11並且它的工作原理.. – user4046073

+2

聽起來很棒那。你可以在下面發佈你對這個問題的答案。 :) –

回答

0

這已解決。看到Ramesh Maharjan的評論後,我看着項目目錄,並意識到我的代碼位於文件夾scala2.12下,因爲這是在切換到2.11之前使用的sdk。在您更改'項目結構'中使用的JDK版本時,IDE會生成不同的文件夾。我將代碼移到了文件夾2.11,它工作。事實證明,文件夾事項..