将S3数据加载到AWS SageMaker Notebook
machine-learning
python
5
0

我刚刚开始尝试使用AWS SageMaker,并希望将S3存储桶中的数据加载到SageMaker python jupyter笔记本中的pandas数据框中进行分析。

我可以使用boto来获取S3中的数据,但是我想知道SageMaker框架中是否还有更优雅的方法可以在我的python代码中执行此操作?

在此先感谢您的任何建议。

参考资料:
Stack Overflow
收藏
评论
共 5 个回答
高赞 时间 活跃

在最简单的情况下,您不需要boto3 ,因为您只需阅读资源。
然后它更简单:

import pandas as pd

bucket='my-bucket'
data_key = 'train.csv'
data_location = 's3://{}/{}'.format(bucket, data_key)

pd.read_csv(data_location)

但正如Prateek所说,请确保配置您的SageMaker笔记本实例。可以访问s3。这是在“权限”>“ IAM角色”中的配置步骤完成的

收藏
评论

如果您在这里看看,似乎可以在InputDataConfig中指定它。在文档中搜索“ S3DataSource”( ref )。第25/26页甚至在Python中首当其冲。

收藏
评论

您还可以使用s3fs将存储桶作为文件系统访问

import s3fs
fs = s3fs.S3FileSystem()

# To List 5 files in your accessible bucket
fs.ls('s3://bucket-name/data/')[:5]

# open it directly
with fs.open(f's3://bucket-name/data/image.png') as f:
    display(Image.open(f))
收藏
评论

确保确保Amazon SageMaker角色已附加策略,以便可以访问S3。可以在IAM中完成。

收藏
评论
import boto3
import pandas as pd
from sagemaker import get_execution_role

role = get_execution_role()
bucket='my-bucket'
data_key = 'train.csv'
data_location = 's3://{}/{}'.format(bucket, data_key)

pd.read_csv(data_location)
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号