读取本地 .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/