I am trying to read an excel file from s3 inside an aiflow dag with python, but it does not seem to work. It is very weird because it works when I read it from outside airflow with pd.read_excel(s3_excel_path).
我所做的:
- 在airflow中设置AWS凭据(这很好用,因为我可以列出我的s3 bucket)
- 在运行Airflow的Docker环境中安装panda、s3fs
- Try to read the file with pd.read_excel(s3_excel_path)
正如我所说的,当我在Airflow之外尝试它时,它工作正常。而且,我没有得到任何错误,dag只是继续不确定地运行(在它应该读取文件的步骤),即使我等待20分钟,也没有任何React。
(我想avoir从s3下载文件,处理它,然后上传回s3,这就是为什么我试图直接从s3读取它)
注意:我不工作与csv以及。
EDIT : Likewise, I can't save my dataframe directly to S3 with df.to_csv('s3_path') in airflow dag while I can do it in python
1条答案
按热度按时间t98cgbkg1#
要使用panda读取存储在S3中的数据文件,您有两种选择,一种是使用boto3(或AWS CLI)下载并读取本地文件,这是您不锁定的解决方案,另一种是使用panda支持的s3fs API:
要使用此解决方案,您需要安装
s3fs
和apache-airflow-providers-amazon