【发布时间】:2020-10-01 15:50:32
【问题描述】:
我尝试了许多关于如何从 S3 存储桶加载 pickle 文件 (1.9GB) 的帖子中的代码,但似乎没有一个适用于我们在 AWS Sagemaker 上的笔记本实例。笔记本大小为 50GB。
尝试的一些方法:
方法一
import io
import boto3
client = boto3.client('s3')
bytes_buffer = io.BytesIO()
client.download_fileobj(Bucket=my_bucket, Key=my_key_path, Fileobj=bytes_buffer)
bytes_io.seek(0)
byte_value = pickle.load(bytes_io)
这给出了:
方法2:这实际上让我得到了一些没有错误的东西:
client = boto3.client('s3')
bytes_buffer = io.BytesIO()
client.download_fileobj(Bucket=my_bucket, Key=my_key_path, Fileobj=bytes_buffer)
byte_value = bytes_buffer.getvalue()
import sys
sys.getsizeof(byte_value)/(1024**3)
返回:1.93
但是如何将 byte_value 转换为腌制对象? 我试过这个:
pickled_data = pickle.loads(byte_value)
但是内核“崩溃”了——闲置了,我丢失了所有变量。
【问题讨论】:
标签: python amazon-web-services amazon-s3 boto3 amazon-sagemaker