1
스파크 스칼라 코드의 단위 테스트를 작성하는 방법을 모색 중입니다. 나는 스파크 테스트 기반을 가로 질러 내가 오류를 얻을 몇 가지 표준 예제를 실행하려고에 온스파크 테스트베이스를 사용하여 스파크 단위 테스트
import org.scalatest.FunSuite
import com.holdenkarau.spark.testing.{SharedSparkContext}
class AppTest extends FunSuite with SharedSparkContext {
test("test initializing spark context") {
val list = List(1, 2, 3, 4)
val rdd = sc.parallelize(list)
assert(rdd.count === list.length)
}
}
오류는 다음과 같다 :
Class 'AppTest' must either be declared abstract or implement abstract member 'withFixture(test:Any):Outcome' in 'org.scalatest.SuiteMixin'
나는 같은과에 대한하게 IntelliJ IDEA를 사용하고 내 build.sbt는 다음과 같습니다.
name := ""
version := "1.0"
scalaVersion := "2.11.8"
fork in Test := true
libraryDependencies ++= Seq("org.apache.spark" %% "spark-core" % "2.0.0",
"org.apache.spark" %% "spark-mllib" % "2.0.0",
"org.apache.spark" %% "spark-sql" % "2.0.0",
"org.scalatest" %% "scalatest" % "1.9.1" % "test",
"com.holdenkarau" %% "spark-testing-base" % "0.7.2" % "test"
)
parallelExecution in Test := false
이전에 단위 테스트를 해본 적이 없습니다. 이 문제에 대한 도움을 주시면 감사하겠습니다.
감사합니다. 내가 그것을 밖으로 시도하고 확인하십시오. btw는 spark-testing-base를 사용하고 싶지 않은 특별한 이유가 있습니까? 스파크 유닛 테스팅에 대한 모든 문헌은 – Ravikiran
입니다. 스파크 테스팅 기반은 스파크의 일부 패키지 전용 코드에서 파생됩니다. 그것은 스파크를 테스트 할 수있는 풍부한 기능을 제공합니다. 필자의 의견으로는 이러한 추가 기능으로 인해 스파크 테스트가 더욱 복잡해졌습니다. YMMV –
마지막 행에서 '심볼을 닫을 수 없습니다'라는 오류 메시지가 나타납니다. 다른 것을 가져와야합니까? SparkSession을 이미 가져 왔습니다. – Ravikiran