将工作目录更改为 AWS 上的 S3 存储桶



目前,我正在处理 SageMaker 笔记本实例,并尝试将我的工作目录更改为 AWS S3 存储桶。我正在使用以下代码:

os.chdir('s3://bucket-name')

生成的错误说:FileNotFoundError: [Errno 2] No such file or directory: 's3://bucket-name'但我使用以下代码上传 CSV 文件并且它有效:

import boto3
import pandas as pd
from sagemaker import get_execution_role
role = get_execution_role()
bucket='bucket-name'
data_key = 'some_file.csv'
data_location = 's3://{}/{}'.format(bucket, data_key)
df = pd.read_csv(data_location)

如何将工作目录更改为 S3 存储桶?

S3 不是文件系统,您不能只更改目录。许多库(如 Pandas(可以直接从 S3 读取和写入,但它需要特定的库才能使其工作。

最简单的选项是将文件从 S3 复制到笔记本实例的本地驱动器(EBS 或 EFS(:

aws s3 cp s3://bucket_name/some_file.csv data/

AWS CLI 已安装在笔记本实例上,如果您在启动笔记本实例时授予了正确的 IAM 权限,则 copy 命令应该可以工作。

盖伊是对的,像往常一样;)

如果你仍然想使用 pandas,你需要安装 s3fs 库('pip install s3fs'(,然后你可以这样做:

import pandas as pd
my_file = pd.read_csv('s3://my_bucket/my_prefix/my_file.csv')

最新更新