Я пытаюсь запустить тест wordcount с помощью pytest с этого сайта - Unit testing Apache Spark with py.test. Проблема в том, что я не могу начать искровой контекст. Код я использую для запуска Искровой Context:Тестирование Spark с pytest - невозможно запустить Spark в локальном режиме
@pytest.fixture(scope="session")
def spark_context(request):
""" fixture for creating a spark context
Args:
request: pytest.FixtureRequest object
"""
conf = (SparkConf().setMaster("local[2]").setAppName("pytest-pyspark-local-testing"))
sc = SparkContext(conf=conf)
request.addfinalizer(lambda: sc.stop())
quiet_py4j()
return sc
я выполнить этот код с помощью команды:
#first way
pytest spark_context_fixture.py
#second way
python spark_context_fixture.py
Выход:
platform linux2 -- Python 2.7.5, pytest-3.0.4, py-1.4.31, pluggy-0.4.0
rootdir: /home/mgr/test, inifile:
collected 0 items
Тогда я хочу, чтобы запустить WordCount тест с использованием pytest.
pytestmark = pytest.mark.usefixtures("spark_context")
def test_do_word_counts(spark_context):
""" test word couting
Args:
spark_context: test fixture SparkContext
"""
test_input = [
' hello spark ',
' hello again spark spark'
]
input_rdd = spark_context.parallelize(test_input, 1)
results = wordcount.do_word_counts(input_rdd)
expected_results = {'hello':2, 'spark':3, 'again':1}
assert results == expected_results
Но выход:
________ ERROR at setup of test_do_word_counts _________
file /home/mgrabowski/test/wordcount_test.py, line 5
def test_do_word_counts(spark_context):
E fixture 'spark_context' not found
> available fixtures: cache, capfd, capsys, doctest_namespace, monkeypatch, pytestconfig, record_xml_property, recwarn, tmpdir, tmpdir_factory
> use 'pytest --fixtures [testpath]' for help on them.
Кто-нибудь знает, что является причиной этой проблемы?
Вы установили искру на вашу машину? – Yaron
Да, я установил Spark 1.6. Я могу запустить pyspark в командной строке, чтобы он выглядел нормально. –