Как передать аргумент в задание отправки spark в airflow

0

Вопрос

Я должен запустить модуль pyspark из воздушного потока с помощью оператора sparksubmit. Но модуль pyspark должен принимать переменную сеанса spark в качестве аргумента. Я использовал application_args для передачи параметра в модуль pyspark. Но когда я запустил dag, оператор отправки spark завершается ошибкой, и параметр, который я передал, рассматривается как переменная типа None. Нужно знать, как передать аргумент модулю pyspark, запускаемому через spark_submit_operator.

Код DAG приведен ниже:

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("PRJT").enableHiveSupport().getOrCreate()

spark_config = {
    'conn_id': 'spark_default',
    'driver_memory': '1g',
    'executor_cores': 1,
    'num_executors': 1,
    'executor_memory': '1g'
}

dag = DAG(
    dag_id="spark_session_prgm",
    default_args=default_args,
    schedule_interval='@daily',
    catchup=False)

spark_submit_task1 = SparkSubmitOperator(
    task_id='spark_submit_task1',
    application='/home/airflow_home/dags/tmp_spark_1.py',
    application_args=['spark'],
    **spark_config, dag=dag)

Пример кода в tmp_spark_1.py программа:

airflow pyspark
2021-11-24 06:48:20
1
0

После небольшой отладки я нашел решение своей проблемы.

argparse вот причина, по которой это не работало. Вместо этого я использовал sys с sys.argv[1] и это делает свою работу.

2021-12-02 13:07:10

Пожалуйста, используйте ответы только для публикации решений. Не задавай вопросов.
Dharman

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................