您应该可以使用
BashOperator。保持其余代码不变,导入所需的类和系统软件包:
from airflow.operators.bash_operator import BashOperatorimport osimport sys
设置所需的路径:
os.environ['SPARK_HOME'] = '/path/to/spark/root'sys.path.append(os.path.join(os.environ['SPARK_HOME'], 'bin'))
并添加运算符:
spark_task = BashOperator( task_id='spark_java', bash_command='spark-submit --class {{ params.class }} {{ params.jar }}', params={'class': 'MainClassName', 'jar': '/path/to/your.jar'}, dag=dag)您可以使用Jinja模板轻松扩展它以提供其他参数。
您当然可以通过替换
bash_command适合您情况的模板来针对非火花场景进行调整,例如:
bash_command = 'java -jar {{ params.jar }}'和调整
params。



