2008-09-04 85 views
11

是否有任何处理读取大型CSV文件的好程序?我处理的一些数据文件在1 GB的范围内。他们有太多的Excel甚至可以处理。使用Access可能会有点慢,因为您必须将它们实际导入数据库以直接使用它们。是否有一个程序可以打开大量的CSV文件,并为您提供简单的电子表格布局以帮助您轻松快速地扫描数据?用于处理大型CSV文件的程序

+0

是的,有。 您可以使用[OpenRefine] [1](或Google Refine)。 OpenRefine就像是一个关于类固醇的电子表格。 您可以操作的文件大小取决于计算机的内存。 [1]:http://openrefine.org – 2015-10-05 21:52:02

回答

8

MySQL可以使用LOAD DATA INFILE命令非常快速地将CSV文件导入表格。它还可以通过使用CSV storage engine直接从CSV文件中读取,绕过任何导入过程。

将它导入到具有LOAD DATA INFILE的本机表中会导致启动成本,但在此之后您可以更快地将INSERT/UPDATE以及索引字段更快地更新。首先使用CSV存储引擎几乎是瞬间的,但只有顺序扫描速度会很快。

更新This article(向下滚动到标题为即时数据装载部分)谈论使用这两种方法来加载CSV数据到MySQL的,并给出了实例。

+0

我确实使用了由15-30MB CSV文件组成的Real Estate MLS数据集。如果没有MySQL LOAD INFILE,每个提要需要一个小时或更多的时间来处理....但是使用MySQL和原始表格,即使是较大的数据集,我也可以将处理时间缩短到5-6分钟。 – David 2008-09-18 21:35:50

2

vEdit非常适合这个。我经常打开100多兆(我知道你说过一个演出,我认为他们在他们的网站上宣传它可以处理两次)文件。它具有正则表达式支持和其他功能的负载。用它可以用70美元便宜。

0

vEdit是伟大的,但不要忘记,你总是可以回到“基本”检查Cygwin并开始greping。

乐于助人的命令

  • grep的
  • 尾场的perl
1

如果您没有附加到真正的电子表格静态字段大小视图,GVim可以处理大型文件。

0

这取决于你实际想要对数据做什么。给定一个像这样的大文本文件,你通常只需要在任何时候使用更小的数据子集,所以不要忽视诸如“grep”之类的工具来提取想要查找和使用的作品。

0

如果您可以将数据放入内存并且您喜欢python,那么我建议您查看Augustus的UniTable部分。 (免责声明:奥古斯都是开源的(GPLv2),但我为写它的公司工作。)

它没有很好的记录,但这应该可以帮助你开始。

from augustus.kernel.unitable import * 
a = UniTable().from_csv_file('filename') 
b = a.subtbl(a['key'] == some_value) #creates a subtable 

它不会直接给你一个像界面一样的excel,但有一点点工作,你可以很快得到很多统计数据。

7

我发现reCSVeditor是一个伟大的编辑大型CSV文件的程序。这是清除不必要的列的理想选择。我已经很容易地将它用于文件1,000,000个记录文件。

+0

+1 reCSVeditor为我工作的接近2GB的文件大于2,000,000行 – 2013-07-07 09:03:24