我目前有一个非常大的数据集(~15 GB),应该同时由多个Python脚本使用。
加载数据集的单个元素需要太长时间,因此整个数据集必须在内存中。
我目前最好的方法是让一个python进程加载所有元素,并让其他python脚本通过一个到localhost的套接字连接请求元素。
然而,话又说回来,我有编码和解码通过套接字发送的数据的问题.所以我的下一个最好的想法是以下,然而,我不知道这是否是可能的:
1.让脚本通过套接字向拥有数据的进程发送一个请求,该请求包含它们想要使用的数据集中数据点的索引
1.让拥有数据的进程返回数据点的内存地址
1.让脚本从那里加载元素
所以问题是这是否可能?
问候
1条答案
按热度按时间lf5gs5x21#
我们这里的细节有点稀疏,但这里有一个符合您要求的解决方案。我假设您的数据近似于表格(如CSV或pandas.DataFrame),并且每个字段中的数据类型一致。
为了使用这个,
DATA_FIELDS
、STRUCT_FMT_STR
、ENCODING
和STR_WIDTH
信息以匹配数据如果你正在做大量的测试(比如编辑脚本,运行它,检查结果,编辑脚本检查,等等),你可以启动一个提供者,然后用消费者重复运行你的测试,而不必重新加载数据,因为只要提供者仍然活着,消费者就可以重复启动和死亡。
如果你有很多字符串和/或你的字符串可以真的很长,这可能会浪费大量的空间,你可能要考虑单独存储字符串,以节省保存空间。
如果你有任何问题,请告诉我,我试着提出很多评论来帮助解释逻辑,希望它能有所帮助。
字符串