【发布时间】:2015-08-29 08:45:47
【问题描述】:
我正在尝试使用以下代码将位于 AWS S3 存储桶中的 CSV 文件作为 pandas 数据帧读入内存:
import pandas as pd
import boto
data = pd.read_csv('s3:/example_bucket.s3-website-ap-southeast-2.amazonaws.com/data_1.csv')
为了提供完全访问权限,我在 S3 存储桶上设置了存储桶策略,如下所示:
{
"Version": "2012-10-17",
"Id": "statement1",
"Statement": [
{
"Sid": "statement1",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::example_bucket"
}
]
}
不幸的是,我仍然在 python 中收到以下错误:
boto.exception.S3ResponseError: S3ResponseError: 405 Method Not Allowed
想知道是否有人可以帮助解释如何在 AWS S3 中正确设置权限或正确配置 pandas 以导入文件。谢谢!
【问题讨论】:
-
s3后面不应该有双斜线吗?
-
是的,你说得对,应该有。我还必须更改存储桶和文件的位置:tripData = pd.read_csv('htps://s3-ap-southeast-2.amazonaws.com/example_bucket/data.csv')。我必须更新单个文件的权限。但它现在有效。干杯。
-
请将您的解决方案添加为帮助其他 Stackoverflow 用户的答案。
-
使用
read_csv从s3读取文件时,pandas是先本地下载到磁盘再加载到内存吗?还是从网络直接流入内存?
标签: python amazon-web-services pandas amazon-s3