如何从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
EXPERTE
gefragt vor 8 Monaten74 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 8 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen