如何从SageMaker笔记本上传Dataframe到AWS S3存储桶

0

【以下的问题经过翻译处理】 在成功将S3的CSV文件上传到SageMaker笔记本实例后,我卡在了反向操作上。

我有一个Dataframe,并希望将其作为CSV或JSON上传到S3 Bucket。我的代码如下:

bucket='bucketname'

data_key = 'test.csv'

data_location = 's3://{}/{}'.format(bucket, data_key)

df.to_csv(data_location)

我认为既然我在加载时成功使用了pd.read_csv(),那么使用df.to_csv()也应该能够工作,但它并没有。可能是因为这种方式无法在手动上传文件到S3时选择隐私选项,所以它生成了错误。是否有一种方法可以从SageMaker上传数据到S3?

profile picture
전문가
질문됨 8달 전74회 조회
1개 답변
0

【以下的回答经过翻译处理】 解决这个问题的一种方法是将CSV保存到SageMaker笔记本实例上的本地存储中,然后使用boto3通过S3 API上传文件作为S3对象。上传文件到S3的文档请参考此处

请注意,您需要确保您的SageMaker托管笔记本实例在其IAM角色中具有适当的ReadWrite权限,否则您将收到权限错误。

将文件本地保存到您希望的任何目录中

文件名=“ mydata.csv” df.to_csv(file_name)

实例化S3客户端并上传到s3

import boto3 s3 = boto3.resource('s3') s3.meta.client.upload_file(file_name,'YOUR_S3_BUCKET_NAME','DESIRED_S3_OBJECT_NAME')

或者使用upload_fileobj(),它可能有助于并行化为分片上传。

profile picture
전문가
답변함 8달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠