使用pyspark进行单元测试时如何忽略spark_home

时间:2019-06-07 16:41:17

标签: pyspark pytest

我试图用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')的{​​{1}}。当我不尝试取消设置环境变量时,也会遇到同样的错误。

我怎样才能确保我的测试在任何计算机上都能正常工作,而无需理会任何环境变量。

0 个答案:

没有答案