我想在python中加载mongoDB集合,但是文档数接近300k,而当我尝试加载整个数据时会抛出内存错误
我正在尝试批量使用循环和负载收集。例如1万个批次等。
使用下面的循环,我能够加载单个文档,如果我们可以为每个10k文档遍历游标,谁能帮助我。请指教
cursor1= db.Data.find()
appendeddata = []
for record in cursor1:
appendeddata.append(record)
df=pd.DataFrame(appendeddata)
我找到了一种解决方案,下面的代码工作正常。还有其他有效的方法吗?请指教。
from pymongo import MongoClient
import pandas as pd
client = MongoClient(port=27017)
db = client["Database"]
chunksize = 200
count=db.Data.find().count()
skips_variable = range(0, db.Data.find().count(), int(chunksize))
append=[]
for i in range(1,len(skips_variable)):
append.append(pd.DataFrame(db.Data.find()[skips_variable[i-1]:skips_variable[i]]))
if(skips_variable[i]<count):
append.append(pd.DataFrame(db.Data.find()[skips_variable[i]:count]))
df = pd.concat(append)