Было сложнее, чем ожидалось, правильно настроить Spark-мастер через SparkSubmitOperator
и SparkSubmitHook
Airflow.
Кажется, вы должны установить правильное соединение для local
, в противном случае по умолчанию используется пряжа.
Я установил export AIRFLOW_CONN_SPARK_LOCAL=local[2]
в своей оболочке, но последняя команда spark-submit остается пустой: --master
. Я воссоздал здесь:
>>> CONN_ENV_PREFIX = 'AIRFLOW_CONN_'
>>> import os
>>> conn_id = 'spark_local'
>>> os.environ.get(CONN_ENV_PREFIX + conn_id.upper())
'local[2]'
>>> from airflow.models import Connection
>>> Connection(conn_id=conn_id, uri='local[2]')
spark_local
>>> Connection(conn_id=conn_id, uri='local[2]').host
''
>>> Connection(conn_id=conn_id, uri='local').host
''
>>> Connection(conn_id=conn_id, uri='spark://local').host
'local'
>>> Connection(conn_id=conn_id, uri='spark://local[2]').host
'2'
Кажется, что установка URL-адреса на spark://local
частично работает, но здесь нет документации по Airflow, и я не уверен, как установить количество локальных ядер. Есть идеи?