Как передать файл в качестве аргумента в SparkSubmitOperator в Apache Airflow - PullRequest
0 голосов
/ 04 января 2019

Команда Spark submit

spark-submit --class=com.test.App  /home/ubuntu/app.jar /home/ubuntu/abc.properties

Сценарий воздушного потока для планирования задания зажигания

from airflow import DAG
from datetime import datetime, timedelta
from airflow.contrib.operators import SparkSubmitOperator 
import sys
import os
from airflow.models import Variable
from airflow.operators.python_operator import PythonOperator

current_date = datetime.now() 

default_args = {
    'owner': 'airflow',
    'catchup' : False,
    'depends_on_past': False,
    'start_date': datetime(2019, 1, 4, 13, 22),
    'email': ['airflow@example.com'],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 0,
    'retry_delay': timedelta(minutes=1),
}

dag = DAG(
    'test', default_args=default_args, schedule_interval=timedelta(minutes=5))

spark_task1 = SparkSubmitOperator(
    task_id='LoadRawPOPToCassandra',
    application='/home/ubuntu/app.jar',
    java_class='com.test.App',
    application_args="/home/ubuntu/abc.properties",
    dag=dag)

spark_task1

Выдает ошибку airflow.exceptions.AirflowException. SparkSubmitOperator принимает каждый символ имени файла (application_args) в качестве аргумента.

Как передать путь к файлу в качестве аргумента в операторе SparkSubmitOperator. Я попытался с файлами вместо application_args в параметре SparkSubmitOperator, но та же ошибка. Я использую искру как местный

1 Ответ

0 голосов
/ 04 января 2019

Согласно документации , аргумент application_args объекта SparkSubmitOperator принимает список, а не строку, поэтому вы хотите передать следующее:

application_args=["/home/ubuntu/abc.properties"],

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...