我有两组文件,其中包含 CSV 格式的数据和一个公共(public)键(时间戳)——我需要按时间顺序遍历所有记录。
A 组:“环境数据”
- 文件名采用 A_0001.csv、A_0002.csv 等格式。
- 预排序升序
- Key 是时间戳,即 YYYY-MM-DD HH:MM:SS
- 包含 CSV/列格式的环境数据
- 非常大,数 GB 的数据
B 组:“事件数据”
- 文件名格式为 B_0001.csv、B_0002.csv
- 预排序升序
- Key 是时间戳,即 YYYY-MM-DD HH:MM:SS
- 包含 CSV/列格式的基于事件的数据
- 与 A 组文件相比相对较小,< 100 MB
什么是最好的方法?
- 预合并:使用各种方法之一将文件合并为单个排序输出,然后读取它进行处理
- 实时合并:实现实时“合并”文件的代码
我将对事物的后处理方面进行大量迭代。有什么想法或建议吗?我正在使用 Python。
最佳答案
我认为将其导入数据库(mysql、sqlite 等)会比将其合并到脚本中提供更好的性能。数据库通常具有用于加载 csv 的优化例程,并且连接可能与在 python 中合并 2 个字典(一个非常大)一样快或快得多。
关于Python同步读取排序文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2035285/