使用 @task.bash 定义 BashOperator
Bash 任务允许您指定任意 shell 命令或脚本,并将其加入 Airflow 工作流。这是在您的环境中落地 Airflow 的一个很好的起点。
因此,您一直在交付给数据分析团队同事之前,手动运行一些脚本清洗数据(使用名为 cleanup.sh 的脚本)。随着分配给您的此类任务越来越多,您发现手动运行已难以跟上,更不用说处理错误或重试了。您希望将这个简单脚本实现为一个 Airflow operator。
Airflow 的 dag 和 task 对象已经导入。
本练习是课程的一部分
Python 中的 Apache Airflow 入门
练习说明
- 使用
@task.bash装饰器定义该任务。 - 使用方法名
cleanup_task。 - 让该任务返回
cleanup.sh。
交互式实操练习
通过完成这段示例代码来试试这个练习。
@dag(
dag_id='analytics_dag',
start_date=datetime(2026,1,1)
)
def analytics_dag():
# Specify a Bash task
@____
def ____():
return '____'
# Run the task
cleanup_task()
analytics_dag()