将工作目录更改为 AWS 上的 S3 存储桶
Changing the working directory to a S3 Bucket on AWS
目前我正在处理 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 权限,那么复制命令应该可以使用。
像往常一样,这家伙是对的 ;)
如果你还想使用pandas,你需要安装s3fs库('pip install s3fs'),然后你可以这样做:
import pandas as pd
my_file = pd.read_csv('s3://my_bucket/my_prefix/my_file.csv')
目前我正在处理 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 权限,那么复制命令应该可以使用。
像往常一样,这家伙是对的 ;)
如果你还想使用pandas,你需要安装s3fs库('pip install s3fs'),然后你可以这样做:
import pandas as pd
my_file = pd.read_csv('s3://my_bucket/my_prefix/my_file.csv')