Thêm decorator cho một task
Bạn quyết định triển khai một task cụ thể của Airflow bằng Python. Task này cần tải xuống và lưu một tệp vào hệ thống trong Airflow, sử dụng hàm pull_file. Hàm này đã được định nghĩa sẵn cho bạn.
Thư viện requests và đối tượng dag của Airflow đã được import sẵn.
Bài tập này là một phần của khóa học
Giới thiệu về Apache Airflow bằng Python
Hướng dẫn bài tập
- Import đối tượng cần thiết từ thư viện Airflow.
- Cấu hình hàm
pull_fileđể trở thành một task của Airflow. - Gọi đối tượng task.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Import the task decorator
from ____ import ____
@dag(dag_id='file_update')
def file_update():
# Decorate the function as a task
____
def pull_file(URL, savepath):
r = requests.get(URL)
with open(savepath, 'wb') as f:
f.write(r.content)
print(f"File pulled from {URL} and saved to {savepath}")
# Call the task
____('http://dataserver/sales.json', 'latestsales.json')
file_update()