我正在一个项目中使用气流,而且我是初学者。我正在寻找在本地写入文件。
我尝试过(这是我的 DAG):
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.python import PythonOperator
def write_simple_file(**kwargs):
file_path = '/Users/paul/airflow/output/hello_airflow.txt'
with open(file_path, 'w') as file:
file.write("Hello from Airflow DAG!\n")
print(f"File written to {file_path}")
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG(
'write_file_dag',
default_args=default_args,
description='DAG pour écrire un fichier simple',
schedule_interval=None,
start_date=datetime(2024, 5, 7),
catchup=False,
)
write_file_task = PythonOperator(
task_id='write_file_task',
python_callable=write_simple_file,
dag=dag,
)
write_file_task
但我在日志中收到“没有此类文件目录”错误。
如果您在 docker 中运行 Airflow,那么默认情况下,运行 DAG 的 docker 容器将看到类似 /opt/airflow 的文件夹结构,即它将无法访问您的笔记本电脑/mac 主文件夹。您可以使用 Python 逻辑将文件 scp 或 sftp 到您的主文件夹。