读取大型csv文件时避免内存错误

问题描述 投票:0回答:1

我正在尝试使用以下方法将较大的csv文件(25 GB)读取到Google云实例上:

from google.cloud import storage
from io import StringIO

client = storage.Client()
bucket = client.get_bucket('bucket')
blob = bucket.get_blob(f"full_dataset.csv")
bt = blob.download_as_string()

s = str(bt,"utf-8")
s = StringIO(s)
df = pd.read_csv(s)

这给我以下错误:

---------------------------------------------------------------------------
MemoryError                               Traceback (most recent call last)
<ipython-input-18-e919b9b86de2> in <module>
  2 
  3 s = str(bt,"utf-8")
 ----> 4 s = StringIO(s)

MemoryError: 

您是否可以使用另一种方法来有效地读取此csv文件而不会出现内存错误?

memory google-cloud-storage blob stringio
1个回答
0
投票

对象太大,无法放入内存中的字符串。您可以改为逐块读取它,例如,使用google.resumable_media

© www.soinside.com 2019 - 2024. All rights reserved.