У меня есть несколько модульных тестов, которые должны иметь свой собственный sparkSession.Я расширил SQLTestUtils и переопределяю функции beforeAll и afterAll, которые используются во многих других тестах Spark Unit (из источника).У меня есть несколько наборов тестов, которые выглядят примерно так:
class MyTestSuite extends QueryTest with SQLTestUtils {
protected var spark: SparkSession = null
override def beforeAll(): Unit = {
super.beforeAll()
spark = // initialize sparkSession...
}
override def afterAll(): Unit = {
try {
spark.stop()
spark = null
} finally {
super.afterAll()
}
}
// ... my tests ...
}
Если я запускаю один из них, это нормально, но если я запускаю два или более, я получаю эту ошибку:
Вызвано: ОШИБКА XSDB6: Возможно, еще один экземпляр Derby уже загрузил базу данных /home/jenkins/workspace/Query/apache-spark/sql/hive-thriftserver-cat-server/metastore_db.
Но я подумал, что afterAll()
должен был должным образом отключить искру, чтобы я мог создать новую.Разве это не правильно?Как мне это сделать?