2017-07-05 2 views
-2

Ich bin neu in Scala und Spark. Ich brauche JUnit für das folgende Wortzählimpulsprogramm zu schreiben:Müssen JUnit Test für Scala Code schreiben

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"); 

    } 

} 

Wie schreibe ich einen Test für diese mit JUnit?

+2

Was haben Sie zuerst versucht, nachdem Sie sich das Spark-Dokument angesehen haben, um zu sehen, wie es getestet werden sollte? – cchantep

+2

Bitte lesen: https://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-actual-question ... ** Sie ** beginnen, indem Sie Ihre Gedanken/aktueller Code; und wir helfen bei der Lösung von Problemen. Wir machen diesen ersten Schritt nicht für Sie. – GhostCat

+0

Wenn Sie mit Java vertraut sind, können Sie Ihren Scala-Code aus Java testen, wenn Sie möchten. – stefanobaghino

Antwort

0

Sie eines der vielen scala spec/Testbibliotheken können

ein Test wie

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) 
}} 

Kontrolle dieser für ein volles Beispiel aussehen kann Spec Class

gibt es beispielsweise Programme gibt für scalatest specification etc, haben eine Suche rund um

+0

Danke für die Antwort – Barkha

0

Inzwischen habe ich auch eine andere Lösung gefunden, so daran gedacht, es zu teilen

Import java.io.File

Import org.junit. {Assert, Test}

/** * Erstellt von usharani auf 2017.07.07. */ Klasse SparkWordCountTest {

@Test def test(): Unit = { val line1 = new File ("outfile/Teil 00000") val line2 = new File ("C:/Users/Usharani/IdeaProjects/Praxis/src/test/scala/inputs.txt ") Wert myString = scala.io.Source.fromFile (line1) .getLines.mkString Wert myString1 = scala.io.Source.fromFile (line2). getLines.mkString println (myString) println (meinstring1) Assert.assertEquals (myString, meinstring1)

} }