我正在处理许多数据集,这些数据集的结构键为_。键值可以是可变长度字符串或整数。该值可以是任意日期类型。日期可以是不连续的。一个示例集可能是:
ABC\12-2021年12月
DE=21-2022年12月-5.0
HIJGSDFSDF\13-2021年12月1日
ABC\15-2021年12月-5.0
一般来说,每个数据集可以有大约5,000个日期和~20000个标识符。我正在尝试将其存储在磁盘上,这样就可以高效地将其加载到Python中。进入的方式可以是:
。
重点在于快速阅读--写入速度可能更慢。
到目前为止,我的想法是:( a)头信息(包括数据类型等)数组的唯一键,并偏移到文件中的数据c)在每个偏移量,存储(日期,值)对按日期顺序排序
所有读取都将基于文件的内存映射。然后,这三种阅读方式看起来如下:
我想知道是否有更好的数据结构或方法来解决这个问题。
编辑:考虑了数据库,例如SQLITE,但是不认为这是对读取类型3的性能。例如,如果我的输入键数组是(a,b,a,b,b)和日期数组是(11-11月,11-11月,13-11月,12-11月,12-11月,15-11月),那么SQL查询将需要:为每对唯一的键/日期构建where子句,然后再进行排序。此外,回溯还需要更多的复杂性,好像没有a,11-Nov对,但是有a,5-Nov对,这应该返回。
发布于 2022-07-22 13:19:46
我不是专家,但我使用‘Parquet’来改善磁盘存储和阅读时间。
https://www.rstudio.com/blog/speed-up-data-analytics-with-parquet-files/
https://stackoverflow.com/questions/73080923
复制相似问题