Я пытался написать юнит-тесты с pyspark. Тесты проходят со следующей конфигурацией, когда SPARK_HOME
НЕ установлен. На наших машинах есть несколько установок spark, и если для SPARK_HOME
установлено одно из них, тесты на этом компьютере не пройдут.
@pytest.fixture(scope="session")
def spark_session(request):
session = SparkSession\
.builder\
.master("local[2]")\
.appName("pytest-pyspark-local-testing")\
.getOrCreate()
request.addfinalizer(lambda: session.stop())
quiet_py4j()
return session
Я пытался os.environ["SPARK_HOME"] = ""
, который получает FileNotFoundError: [Errno 2] No such file or directory: './bin/spark-submit': './bin/spark-submit
ошибку.
Я также пытался os.unsetenv('SPARK_HOME')
, который получает Exception: Java gateway process exited before sending its port number
. Когда я не пытаюсь сбросить env var, я получаю ту же ошибку.
Как я могу убедиться, что мои тесты будут работать на любой машине, просто игнорируя любые переменные среды.