Le code suivant scala fonctionne très bien, et les séries de tests:Qu'est-ce qui cause une exception NullPointerException lorsqu'un SharedSparkContext (sc) est utilisé en dehors d'une fonction de test dans FunSuite?
import org.scalatest._
import com.holdenkarau.spark.testing._
class DummyTest extends FunSuite with SharedSparkContext {
test("shared context only works inside test functions.") {
val myRDD = sc.parallelize(List(1,2,3,4))
}
}
Cependant, les résultats de code scala suivants dans un java.lang.NullPointerException sur la ligne sc.parallelize:
import org.scalatest._
import com.holdenkarau.spark.testing._
class DummyTest extends FunSuite with SharedSparkContext {
val myRDD = sc.parallelize(List(1,2,3,4))
test("shared context only works inside test functions.") {
assert(true)
}
}
Qu'est-ce que provoque l'exception NullPointerException lorsque le SparkContext est utilisé en dehors de la fonction de test?
Où est-ce que sc est déclaré? –
Vous obtenez sc comme un champ de SharedSparkContext. Par exemple. https://github.com/zezutom/spark-by-example/blob/master/src/test/scala/basic/WordCountTest.scala –
beforeAll dans SharedSparkContext est responsable de l'initialisation de sc qui ne se produit pas. Assurez-vous que la méthode beforeAll de super classe est exécutée en premier. –