火花提交命令
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运算符中将文件路径作为参数传递。 我尝试使用文件而不是SparkSubmitOperator参数中的application_args,但是出现相同的错误。我将spark用作本地
答案 0 :(得分:0)
根据documentation,SparkSubmitOperator的application_args
参数采用一个列表,而不是字符串,因此要传递的内容如下:
application_args=["/home/ubuntu/abc.properties"],