用于处理大型CSV文件的程序
是否有用于处理读取大型CSV文件的好的程序?我处理的某些数据文件在1 GB范围内。他们有太多行甚至无法处理Excel。使用Access可能会有点慢,因为我们必须将它们实际导入数据库才能直接使用它们。是否有可以打开大型CSV文件并为我们提供简单电子表格布局的程序,以轻松快速地扫描数据?
解决方案
回答
vEdit对此非常有用。我通常会打开100兆以上的文件(我知道你说最多一次演出,我认为他们在他们的网站上刊登广告它可以处理两倍的文件)。它具有正则表达式支持和其他功能的负载。 70美元的价格对我们来说可以算是便宜了。
回答
vEdit很棒,但是请不要忘记,我们可以随时返回"基础知识"以了解Cygwin并开始使用greping。
有用的命令
- grep
- 头
- 尾巴
- 当然是perl!
回答
如果我们未添加到真正的电子表格静态字段大小视图,则GVim可以免费处理大文件。
回答
这取决于我们实际想对数据做什么。给定一个像这样的大文本文件,我们通常一次只想要一小部分数据,因此不要忽略" grep"之类的工具来提取要查找和使用的片段。
回答
如果我们可以将数据放入内存中并且喜欢python,则建议我们查看Augustus的UniTable部分。 (免责声明:Augustus是开放源代码(GPLv2),但我为编写该文件的公司工作。)
它没有很好的文档记录,但这应该可以入门。
from augustus.kernel.unitable import * a = UniTable().from_csv_file('filename') b = a.subtbl(a['key'] == some_value) #creates a subtable
它不会直接为我们提供像excel一样的界面,但是只需一点点工作,我们就可以快速获得许多统计信息。
回答
MySQL可以使用" LOAD DATA INFILE"命令非常快速地将CSV文件导入表中。通过使用CSV存储引擎,它还可以直接从CSV文件中读取数据,而无需执行任何导入过程。
使用" LOAD DATA INFILE"将其导入到本机表中会增加启动成本,但之后我们可以更快地" INSERT / UPDATE"以及索引字段。刚开始使用CSV存储引擎几乎是瞬时的,但只有顺序扫描会很快。
更新:本文(向下滚动至标题为"即时数据加载"部分)讨论了使用两种方法将CSV数据加载到MySQL的方法,并提供了示例。