2016-04-19 4 views
3

私はHortonworks Sandbox上でIntellijを使用して簡単なSparkアプリケーションを実行しようとしています。 私はScalaのクラスを作成し、その後、新しいSBTプロジェクトを開いた:Intellij内でSparkスケーラアプリケーションを実行する方法

import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.SparkConf 

object SimpleApp { 
    def main(args: Array[String]) { 
    val logFile = "/root/temp.txt" 
    val conf = new SparkConf().setAppName("Simple Application") 
    val sc = new SparkContext(conf) 
    val logData = sc.textFile(logFile, 2).cache() 
    println(logData .count()) 
    } 
} 

これは私のbuild.sbtです:

name := "Simple Project" 
version := "1.0" 
scalaVersion := "2.10.4" 
libraryDependencies += "org.apache.spark" % "spark-core" % "1.3.0" % "provided" 

今すぐ右このクラスをクリック - >実行が例外をスローします。

exception in thread main java.lang.noclassdeffounderror: org/apache/Spark/SparkConf 

明らかに私は何か間違っていますが、私は依存関係リストにスパークライブラリを見ることができます。どんな助け?のScalaのバージョンを指定する

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.2" % "provided"

答えて

2

実行して、build.sbtファイルで

object SimpleApp extends App { 
    def main(args: Array[String]) { 
    val logFile = "/root/temp.txt" 
    val conf = new SparkConf().setAppName("Simple Application") 
    val sc = new SparkContext(conf) 
    val logData = sc.textFile(logFile, 2).cache() 
    println(logData .count()) 
    } 
} 
+0

もちろん!ありがとう –

0

(SBT Scalaのコンソールは完璧に動作してところで、このプログラムを実行している)、次の2つのパーセント記号を必要としますアーティファクトspark-core

IntelliJ IDEAでクラスを実行するには、 "ファイル - >プロジェクト構造"を使用してSparkライブラリを追加する必要があります。次に、 "Libraries"の下に必要なSparkライブラリを追加することができます。オブジェクトはアプリケーションがscala.Appを拡張する代わりに、main()メソッドを定義する必要がありSpark QuickStart

注に従ってAppを拡張するべきではない

注意。 scala.Appのサブクラスが正しく動作しないことがあります。

編集1:テスト中にprovided修飾子を一時的に削除することもできます。

関連する問題