2017-07-05 69 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) 
}} 

检查这对于一个完整的例子Spec Class

有示例程序在那里为scalatest规格等,搜索周围

+0

谢谢你的回答 – Barkha

0

同时我还发现了另一种解决方案,所以想到分享它

进口的java.io.File

进口org.junit。{断言,测试}

/** * 创建者什尼于2017年7月7日。 */ 类SparkWordCountTest {

@Test DEF试验():单位= { VAL LINE1 =新的文件( “OUTFILE /部分-00000”) VAL LINE2 =新的文件(“C:/用户/ usharani/IdeaProjects/Practice/src/test/scala/inputs.txt“) val myString = scala.io.Source.fromFile(line1).getLines.mkString val myString1 = scala.io.Source.fromFile(line2)。 getLines.mkString 的println(myString的) 的println(myString1) Assert.assertEquals(myString的,myString1)

} }