1
spark scala codeの単体テストを書く方法を探っています。私は、スパークテストベースに出くわしたといくつかの標準的な例を実行しようとすると、私はエラーを取得spark-testing-baseを使ったスパークユニットテスト
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
私は以前にユニットテストを行ったことがありません。この問題のお手伝いをお願いします。
ありがとうございました。それを試してチェックしてみましょう。あなたはスパークテストベースを使用したくない特別な理由はありますか?スパークユニットテストのすべての文献では、 – Ravikiran
スパークテストベースはsparkのいくつかのパッケージプライベートコードから派生しています。スパークをテストする豊富な機能を提供します。私の意見では、これらの追加機能により、スパークテストはより複雑になります。 YMMV –
最後の行で 'シンボルを解決できません'というエラーが表示されます。私は何か他のものを輸入する必要がありますか?私はすでにSparkSessionをインポートしています。 – Ravikiran