用于处理大型CSV文件的程序

时间:2020-03-05 18:47:46  来源:igfitidea点击:

是否有用于处理读取大型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的方法,并提供了示例。