Pandas (v1.0.5) 使用s3fs
库连接 AWS S3 并读取数据。默认情况下,s3fs 使用~/.aws/credentials
在配置文件中的文件中找到的凭据default
。从 S3 读取 CSV 时,如何指定 pandas 应该使用哪个配置文件?
例如。
s3_path = 's3://mybucket/myfile.csv'
df = pd.read_csv(s3_path)
$ cat ~/.aws/credentials
[default]
aws_access_key_id = ABCD
aws_secret_access_key = XXXX
[profile2]
aws_access_key_id = PQRS
aws_secret_access_key = YYYY
[profile3]
aws_access_key_id = XYZW
aws_secret_access_key = ZZZZ
编辑 :
当前的黑客/工作解决方案:
import botocore
import s3fs
session = botocore.session.Session(profile='profile2')
s3 = s3fs.core.S3FileSystem(anon=False, session=session)
df = pd.read_csv( s3.open(path_to_s3_csv) )
上述解决方案的唯一问题是您需要导入 2 个不同的库并实例化 2 个对象。保持问题开放,看看是否有另一种更清洁/简单的方法。