gpt4 book ai didi

python - 在 AWS Sagemaker 中使用 python pandas 从 S3 存储桶中读取大型 csv

转载 作者:太空宇宙 更新时间:2023-11-03 10:52:17 26 4
gpt4 key购买 nike

我正在尝试从 S3 存储桶将大型 CSV (~5GB) 加载到 pandas 中。

以下是我为 1.4 kb 的小型 CSV 尝试的代码:

client = boto3.client('s3') 
obj = client.get_object(Bucket='grocery', Key='stores.csv')
body = obj['Body']
csv_string = body.read().decode('utf-8')
df = pd.read_csv(StringIO(csv_string))

这对于小型 CSV 效果很好,但是我无法通过它实现将 5GB csv 加载到 pandas 数据帧的要求(可能是由于通过 StringIO 加载 csv 时的内存限制)。

我也试过下面的代码

s3 = boto3.client('s3')
obj = s3.get_object(Bucket='bucket', Key='key')
df = pd.read_csv(obj['Body'])

但这给出了以下错误。

ValueError: Invalid file path or buffer object type: <class 'botocore.response.StreamingBody'>

非常感谢解决此错误的任何帮助。

最佳答案

我知道这已经很晚了,但这里有一个答案:

import boto3
bucket='sagemaker-dileepa' # Or whatever you called your bucket
data_key = 'data/stores.csv' # Where the file is within your bucket
data_location = 's3://{}/{}'.format(bucket, data_key)
df = pd.read_csv(data_location)

关于python - 在 AWS Sagemaker 中使用 python pandas 从 S3 存储桶中读取大型 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48111034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com