Airflow中的python脚本和Python中的基本上是相同的,但在Airflow中,需要遵循特定的编程规范和API进行编写。此外,Airflow提供了一些特殊的库和模块来管理任务的依赖性和可视化。
以下是一个基本的Airflow DAG,其中包含一个PythonOperator用于执行Python函数。
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime
default_args = {
'start_date': datetime(2021, 1, 1),
'depends_on_past': False,
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG(
'my_dag',
default_args=default_args,
description='My first DAG',
schedule_interval='@daily',
)
def print_hello():
return 'Hello world!'
with dag:
task1 = PythonOperator(
task_id='print_hello',
python_callable=print_hello,
)
上面的PythonOperator将在Airflow中创建一个任务,将print_hello函数作为Python脚本运行。
因此,在Airflow中编写Python脚本的基本结构与在Python中相同,但需要遵循Airflow的API和规则。