我正在尝试将大型 CSV(~5GB)从 S3 存储桶加载到熊猫中。
以下是我为 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'>
非常感谢解决此错误的任何帮助。