gpt4 book ai didi

python - 将 bson 写入磁盘时出现内存不足错误

转载 作者:行者123 更新时间:2023-12-01 05:00:20 26 4
gpt4 key购买 nike

我已经建立了一个巨大的字典 - 可能有几百 GB 左右。有没有一种聪明的方法来存储这样的对象。我使用以下例程推送到磁盘:

print "Writing to file..."
jsontext = bson.dumps(sample_dict)
f = open(predump_file, 'wb+')
f.write(jsontext)
f.close()

这是我得到的堆栈跟踪:

Writing to file...
Traceback (most recent call last):
File "Combine.py", line 1331, in <module>
jsontext = bson.dumps(sample_dict)
File "/mnt/opt/Centos5.8/python-2.7.8/lib/python2.7/site-packages/bson/__init__.py", line 69, in dumps
return encode_document(obj, [], generator_func = generator)
File "/mnt/opt/Centos5.8/python-2.7.8/lib/python2.7/site-packages/bson/codec.py", line 207, in encode_document
encode_value(name, value, buf, traversal_stack, generator_func)
File "/mnt/opt/Centos5.8/python-2.7.8/lib/python2.7/site-packages/bson/codec.py", line 177, in encode_value
traversal_stack, generator_func))
MemoryError: out of memory

选择(我目前只能想到这些):

  1. 字典是嵌套的 - 因此本质上将字典分割成层。
  2. 根据第一个键拆分字典,并为这些底层字典提供另一个索引。然后我可以独立存储N个字典。如果这很好,是否有任何推荐的方法来分割其键的字典并生成顶层索引字典。我认为每个子字典必须是一个变量。因此,一旦我们有了大的嵌套字典,我们就可以将它分成 N 个较小的字典,并在顶部有一个映射索引。
  3. MongoDB 是一个潜在的解决方案吗?

最佳答案

对于 mongo db,最大 (bson) 文档大小为 16MB。您无法存储大于此大小的数据。您可以将每个键值存储为集合中的文档。在您的情况下,您可以使用 key 字段作为文档的 _id 属性

关于python - 将 bson 写入磁盘时出现内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26382021/

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