【发布时间】:2013-12-05 02:00:45
【问题描述】:
我有一个包含几列的巨型 (100Gb) csv 文件和一个包含几列的较小 (4Gb) csv。两个数据集中的第一列具有相同的类别。我想用大文件的记录创建第三个 csv,该文件恰好在小 csv 中具有匹配的第一列。在数据库方面,这将是第一列的简单连接。
我正在努力寻找提高效率的最佳方法。由于较小的数据集适合内存,我正在考虑将其加载到一种集合结构中,然后逐行读取大文件并查询内存中的集合,然后写入文件。
只是用 SO 术语来表达问题,是否有最佳方法来实现这一点?
编辑:这是一次性操作。
注意:语言不相关,欢迎对列、面向行的数据库、python 等提出建议...
【问题讨论】:
-
请对不赞成票发表评论,以便我改进问题。
-
您多久执行一次连接?如果不止一次,将这两个文件读入数据库。
-
我没有经验,但您可能希望查看 HDF5 以获取如此大的数据。
-
100GB 不是那么大。 TB 级数据库很常见
-
对于 1 次操作,我认为您的方法很好......它可能是一个 15-20 行的 python 程序。
标签: c# python database bigdata