为了账号安全,请及时绑定邮箱和手机立即绑定

大蟒蛇字典。存储、加载和写入

大蟒蛇字典。存储、加载和写入

白板的微信 2021-09-25 16:48:28
我有一个很大的 Python 值字典(大约 50 GB),并将其存储为 JSON 文件。在打开文件和写入文件时,我遇到了效率问题。我知道您可以使用 ijson 有效地读取文件,但是我如何有效地写入文件?我什至应该使用 Python 字典来存储我的数据吗?python字典的大小有限制吗?(字典会变大)。数据基本上存储了大图中节点之间的路径长度。我无法将数据存储为图形,因为搜索两个节点之间的连接花费的时间太长。任何帮助将非常感激。谢谢!
查看完整描述

3 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

尽管这将真正取决于您要对网络数据集执行的操作,但您可能需要考虑将其存储为 Pandas 数据帧,然后使用 Parquet 或 Arrow 将其写入磁盘。

然后可以将这些数据加载到 networkx 甚至 Spark (GraphX) 以进行任何与网络相关的操作。

Parquet 是压缩的和柱状的,可以更快地读取和写入文件,尤其是对于大型数据集。

来自熊猫文档:

Apache Parquet 为数据帧提供分区的二进制列式序列化。它旨在提高读写数据帧的效率,并使跨数据分析语言的数据共享变得容易。Parquet 可以使用多种压缩技术来尽可能缩小文件大小,同时仍然保持良好的读取性能。

Parquet 旨在忠实地序列化和反序列化 DataFrame ,支持所有 Pandas 数据类型,包括扩展数据类型,例如带有 tz 的 datetime。

在此处进一步阅读:Pandas Parquet


查看完整回答
反对 回复 2021-09-25
  • 3 回答
  • 0 关注
  • 231 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号