Database 为什么我不能在DB中写入数据帧?
我有32 gb内存,我使用jupyter和pandas。我的数据帧不是很大,但当我想在北极数据库中编写它时,我有“MemoryError”: 我想写下来:Database 为什么我不能在DB中写入数据帧?,database,python-2.7,pandas,Database,Python 2.7,Pandas,我有32 gb内存,我使用jupyter和pandas。我的数据帧不是很大,但当我想在北极数据库中编写它时,我有“MemoryError”: 我想写下来: from arctic import Arctic import arctic as arc store = Arctic('.....') lib = store['myLib'] lib.write('quotes', df_q) MemoryError回溯(最近的调用) 最后)在() 1个存储器(df_q) ---->2 lib.wr
from arctic import Arctic
import arctic as arc
store = Arctic('.....')
lib = store['myLib']
lib.write('quotes', df_q)
MemoryError回溯(最近的调用)
最后)在()
1个存储器(df_q)
---->2 lib.write('quotes',df_q)
/中的usr/local/lib/python2.7/dist-packages/arctic/decorators.pyc
f_重试(*args,**kwargs)
48尽管如此:
49尝试:
--->50返回f(*args,**kwargs)
51除(DuplicateKeyError、ServerSelectionTimeoutError)外,其他为e:
52#重新提出不会消失的错误
/usr/local/lib/python2.7/dist-packages/arctic/store/version_store.pyc
写入(自身、符号、数据、元数据、删除以前的版本、,
**kwargs)
561
562 handler=self.\u write\u handler(版本、符号、数据,**kwargs)
-->563 mongo_重试(handler.write)(self._北极_库,版本,符号,数据,以前的_版本,**kwargs)
564
565#将新版本插入版本数据库
/中的usr/local/lib/python2.7/dist-packages/arctic/decorators.pyc
f_重试(*args,**kwargs)
48尽管如此:
49尝试:
--->50返回f(*args,**kwargs)
51除(DuplicateKeyError、ServerSelectionTimeoutError)外,其他为e:
52#重新提出不会消失的错误
/usr/local/lib/python2.7/dist-packages/arctic/store//u pandas\u ndarray\u store.pyc
写入(自身、北极_库、版本、符号、项目、上一个_版本)
301 def写入(自身、北极_库、版本、符号、项目、以前的_版本):
302项目,md=自我记录(项目)
-->303 super(PandasDataFrameStore,self).write(北极_库,版本,符号,项,以前的_版本,dtype=md)
304
305 def append(自身、北极_库、版本、符号、项目、以前的_版本):
/usr/local/lib/python2.7/dist-packages/arctic/store//u ndarray\u store.pyc
以书面形式(自我、北极_库、版本、符号、项目、以前的_版本、,
数据类型)
385版本['type']=self.type
386版本['up_to']=长度(项目)
-->387版本['sha']=自校验和(项)
388
389如果是以前的版本:
/usr/local/lib/python2.7/dist-packages/arctic/store//u ndarray\u store.pyc
校验和中(自身、项目)
370 def校验和(自身,项目):
371 sha=hashlib.sha1()
-->372.sha.update(item.tostring())
373返回二进制文件(sha.digest())
374
记忆错误:
df_q.shape
(157293660, 10)
def memory(df):
mem = df.memory_usage(index=True).sum() / (1024 ** 3)
print(mem)
memory(df_q)
12.8912200034
WTF?
如果我使用df_q.to_csv(),我将等待数年。…您的问题实际上不是内存问题。如果您读取了错误,那么您的库在访问数据时似乎遇到了问题 第一个错误:表示您的服务器已超时。(
ServerSelectionTimeoutError
)
第二个错误:尝试更新MongoDB版本
第三个错误:重试访问服务器失败。(ServerSelectionTimeoutError
)
所以本质上你的问题在于Arctic包本身(见最后一个错误是校验和错误)。您还可以从
df_q.to_csv()
工作的事实推断出这一点,但是它非常慢,因为它没有像Artic那样优化。我建议尝试重新安装Arctic软件包您的问题实际上不是内存问题。如果您读取了错误,那么您的库在访问数据时似乎遇到了问题
第一个错误:表示您的服务器已超时。(ServerSelectionTimeoutError
)
第二个错误:尝试更新MongoDB版本
第三个错误:重试访问服务器失败。(ServerSelectionTimeoutError
)
所以本质上你的问题在于Arctic包本身(见最后一个错误是校验和错误)。您还可以从
df_q.to_csv()
工作的事实推断出这一点,但是它非常慢,因为它没有像Artic那样优化。我建议尝试重新安装Arctic软件包您是否尝试将DF写入?是否尝试将DF写入?