gpt4 book ai didi

python - 用于存储巨大(> 5GB)排序文件的数据结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:12 24 4
gpt4 key购买 nike

假设我们有一个 csv 文件(>5GB),其中包含员工姓名和年龄列。该文件按年龄排序。现在,我希望用户使用 Age 搜索此文件。有人可以指导我哪种数据结构最适合此要求吗?

示例:

我的文件.csv

25 ABC    
25 MNP
14 XYZ
14 PQR

输入:

14

输出:

XYZ
PQR

最佳答案

假设文件太大而不适合 RAM,您可以创建一个索引,这样您可以最​​大限度地减少磁盘读取次数(这比 RAM 读取慢得多)。

一些常用的磁盘索引是B+ trees (顶层存储在 RAM 中)和 hash tables .

或者,您可以将其存储为 SQL表,让图书馆自己照顾自己。

另一种选择,由于范围相当小(我无法想象年龄大于 200),您可以使用 200(或可能更少)不同的文件:names_1,names_2,...,names_200其中 names_i持有年龄为 i 的所有姓名的列表.
(此外,由于年龄在许多条目中都以这种方式省略,您实际上可以将其作为 dictionary:age->list<names> 放入 RAM 中)

如果数据适合 RAM - 您可以使用排序数组(如果数据更改不经常/不期望)并使用二进制搜索。
如果需要更改数据,可以使用其他一些结构,例如RAM 上的哈希表,或self balancing BST

关于python - 用于存储巨大(> 5GB)排序文件的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12875188/

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