使用大型CSV文件的程序

时间:2008-09-04 17:43:00

标签: csv load-data-infile

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

7 个答案:

答案 0 :(得分:8)

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

使用LOAD DATA INFILE将其导入到本机表中会产生启动成本,但之后您可以INSERT/UPDATE更快,以及索引字段。一开始使用CSV存储引擎几乎是即时的,但只有顺序扫描才会很快。

更新This article(向下滚动到标题为 Instant Data Loads 的部分)讨论使用这两种方法将CSV数据加载到MySQL上,并举例说明

答案 1 :(得分:7)

我发现reCSVeditor是编辑大型CSV文件的绝佳程序。它是剥离不必要列的理想选择。我很容易将它用于文件1,000,000个记录文件。

答案 2 :(得分:2)

vEdit非常适合这一点。我经常打开100+ meg(我知道你说他们在一个演出,我认为他们在他们的网站上做广告,它可以处理两倍)文件。它具有正则表达式支持和其他功能。你可以用70美元的价格便宜。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

vEdit很棒,但不要忘记你总是可以回到“基础”查看Cygwin并开始贪图。

有用的命令

  • grep
  • 当然是perl!

答案 5 :(得分:0)

这取决于您实际想要对数据执行的操作。给定一个像这样的大文本文件,你通常只需要一个较小的数据子集,所以不要忽视像'grep'这样的工具来拉出你想要查找和使用的部分。

答案 6 :(得分:0)

如果您可以将数据放入内存并且您喜欢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,但通过一些工作,您可以快速获得许多统计数据。