CSV 文件太大,需要将其分割成较小的文件

问题描述 投票:0回答:3

我在处理大 CSV 文件(大约 4.000.000 行)时遇到问题,我正在寻找一种方法将此类文件分成较小的文件。

感谢您提供的任何想法。

csv split
3个回答
4
投票

您可以使用两个出色的 cli 应用程序,它们也可以在 Windows 中使用:miller 和/或 qsv

米勒命令

mlr --csv split -n 1000000 input.csv

QSV命令

qsv split -s 1000000 ./ input.csv

2
投票

您没有提及您正在使用哪个操作系统。在 UNIX/Linux 系统中,有

split
命令,您可以按如下方式使用它来将文件拆分为两行的块:

Prompt> split -l 2 file.txt testfile
Prompt> ls -ltra
...
-rwxrwxrwx 1 user user   64 Dec 22 15:47 testfileaa
-rwxrwxrwx 1 user user   64 Dec 22 15:47 testfileab
-rwxrwxrwx 1 user user    1 Dec 22 15:47 testfileac
...

如果您使用的是 Windows,您可以安装 WSL 应用程序(适用于 Linux 的 Windows 子系统),它会在您的计算机上安装类似 Linux 的程序,让您能够体验 Linux 命令行的所有神奇功能 :-)

正如Robert正确提到的,第二个文件不包含标头,但一个简单的

head -n 1 testfile
可以处理这个问题。


2
投票

还有许多其他方法可以处理类似大小的 CSV 文件。

以下假设您必须使用 Excel 来处理此文件。

使用数据>获取和转换数据>来自文本/CSV

选择文件后,选择“转换数据”以在 Power Query 编辑器中打开查询。

从这里,您可以简单地使用“主页”>“关闭并加载到”>并进行如下配置:

此后,您将能够操作 Power Pivot 数据模型中的数据并使用数据透视表和数据透视图来分析数据。

或者,如果必须将数据加载到工作表中,则可以在使用“主页”>“关闭并加载”并选择“表格”之前,在 Power Query 编辑器中将数据筛选为可管理的大小。

如果您确实必须实际拆分数据,则可以创建引用主查询的单独查询,每个查询在某些列上都有一个过滤器。

在 Power 查询编辑器中,右键单击您在文件上创建的查询,然后选择“引用”。

这将创建一个新查询,您可以按照上述方式进行过滤和加载。

您可以根据需要重复此操作多次。

© www.soinside.com 2019 - 2024. All rights reserved.