2017-07-05 15 views
-2

ScalaとSparkを初めて使用しています。私は、次のワードカウントプログラム用のJUnitを記述する必要があります。ScalaコードのJUnitテストを書く必要があります

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

object SparkWordCount { 

    def main(args: Array[String]) { 

    meth() 

    } 

    def meth() { 

    //Spark Config object having cluster information 
    val sparkConfig = new SparkConf() 
     .setAppName("SparkWordCount") 
     .setMaster("local") 

    val sc = new SparkContext(sparkConfig) 

    val input = sc.textFile("C:\\SparkW\\input\\inp.txt") 
    val count = input.flatMap(line ⇒ line.split(" ")) 
     .map(word ⇒ (word, 1)) 
     .reduceByKey(_ + _) 
    count.saveAsTextFile("outfile") 
    System.out.println("OK"); 

    } 

} 

私はこの使用してJUnitのためのテストを書くにはどうすればよいですか?

+2

Sparkのドキュメントを見て、どのようにテストしたらよいか見てから、何を試しましたか? – cchantep

+2

お読みください:https://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-actual-question ... **あなた**あなたの思考を入れて開始します/現在のコード。問題を解決するのに役立ちます。私たちはあなたのためにその最初のステップをしません。 – GhostCat

+0

Javaに精通している場合は、必要に応じてJavaからScalaコードをテストできます。 – stefanobaghino

答えて

0

あなたがテストは完全な例えば

import org.scalatest.{FlatSpec, Matchers} 

class WordCountSpec extends FlatSpec with Matchers { 
    "wordCount" should "return an empty output for an empty input" in 
withLocalSparkContext { context => 
    val lines = context.emptyRDD[String] 
    val words = WordCount.wordCount(lines).collect() 
    words should be (Seq.empty) 
}} 

チェックこのように見ることができ、多くのScalaのスペック/テストライブラリ

のいずれかを使用することができますSpec Class

は、サンプルプログラムはそこにのためにありますスケータテストの仕様などは、検索の周りに

+0

ありがとうございました – Barkha

0

私はまた、それを共有することを考えて別のを見つけた

インポートjava.io.Fileの

インポートorg.junit。{アサート、テスト}

/** * 2017年7月7日にアッシャラニにより作成。 */ クラスSparkWordCountTest {

@Test DEF試験():単位= { ヴァルLINE1 =新しいファイル( "OUTFILE /部分-00000") ヴァルLINE2 =新しいファイル( "C:/ユーザ/ (myharani/IdeaProjects/Practice/src/test/scala/inputs.txt ") val myString = scala.io.Source.fromFile(line1).getLines.mkString val myString1 = scala.io.Source.fromFile(line2)。 のprintln(のmyString) のprintln(myString1) Assert.assertEquals(のmyString、myString1)

}をgetLines.mkString 210}

関連する問題