读取本地 .csv 到容器化气流
Read local .csv to containerized airflow
我目前正在为我的大学做一个项目,我在 Airflow 中设置了一个 ML 工作流,使用 docker 容器化并通过 docker 撰写文件启动。起点应该是一个 .csv 文件,我可以在本地(或 github 上)获得该文件。
我还不明白如何将这个 .csv 带到气流中(我很快意识到 pd.read_csv 不起作用,因为在执行函数时我显然在容器中)。
我有哪些选择,哪一个最好?
(我发现的大多数教程直接从 sklearn 或 kaggle 导入它们的 dfs,但这对我来说不是一个选项。)
已经谢谢了!
您必须将 csv 文件添加到要上传到 Airflow 的卷中。
例如,如果您的 dags 是这样上传的:
volumes:
- ./dags:/usr/local/airflow/dags
- ./logs-volume:/usr/local/airflow/logs
你可以直接把你的文件放在dags/file.csv下
要检查您的文件是否已加载到您的容器中,您必须 运行 它和 运行 以下内容:
docker ps
这将导致:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8bffd2dad332 airflow:latest "/entrypoint.sh webs…" About an hour ago Up 6 seconds 5555/tcp, 8793/tcp, 0.0.0.0:8080->8080/tcp webserver_1
f65bf73811cb postgres:9.6 "docker-entrypoint.s…" 4 hours ago Up 7 seconds 0.0.0.0:53468->5432/tcp postgres_1
然后你可以运行:
docker exec -it 8bffd2dad332 /bin/bash
然后你可以在你的文件上执行 ls:
ls dags/
我目前正在为我的大学做一个项目,我在 Airflow 中设置了一个 ML 工作流,使用 docker 容器化并通过 docker 撰写文件启动。起点应该是一个 .csv 文件,我可以在本地(或 github 上)获得该文件。 我还不明白如何将这个 .csv 带到气流中(我很快意识到 pd.read_csv 不起作用,因为在执行函数时我显然在容器中)。 我有哪些选择,哪一个最好?
(我发现的大多数教程直接从 sklearn 或 kaggle 导入它们的 dfs,但这对我来说不是一个选项。)
已经谢谢了!
您必须将 csv 文件添加到要上传到 Airflow 的卷中。
例如,如果您的 dags 是这样上传的:
volumes:
- ./dags:/usr/local/airflow/dags
- ./logs-volume:/usr/local/airflow/logs
你可以直接把你的文件放在dags/file.csv下
要检查您的文件是否已加载到您的容器中,您必须 运行 它和 运行 以下内容:
docker ps
这将导致:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8bffd2dad332 airflow:latest "/entrypoint.sh webs…" About an hour ago Up 6 seconds 5555/tcp, 8793/tcp, 0.0.0.0:8080->8080/tcp webserver_1
f65bf73811cb postgres:9.6 "docker-entrypoint.s…" 4 hours ago Up 7 seconds 0.0.0.0:53468->5432/tcp postgres_1
然后你可以运行:
docker exec -it 8bffd2dad332 /bin/bash
然后你可以在你的文件上执行 ls:
ls dags/