根据条件分解大型CSV的最佳方法是什么?



我有 10 个 CSV 文件,每个文件大约是 40-60 GB。 我想知道最有效的方法,不使用Spark/Hadoop来做一些事情,比如根据条件对CSV进行切片并将它们存储为CSV。

例如,考虑一个表Machine_Details +--------------+--------+--------+

|Machine_Name |值 1 |值2 |

+--------------+--------+--------+

| 1203 |0.11 |0.22 |

| 1203 |0.21 |0.23 |

| 1205 |0.21 |0.45 |

+--------------+--------+--------+

我想要的是,与 1203 机器名称相关的所有行都应该放在一个 CSV 中,同样,所有机器名称为 1205 的行都应该放在另一个 CSV 中

我不知道最有效的方法,但如果我需要做这样的事情,我可能会使用Pandas。 1.我会将每个csv转换为数据帧。 2.在每个数据帧中,我会为您的列创建一个唯一值列表。 3. 然后使用布尔变量根据唯一值列表筛选每个 CSV。 4. 过滤每个数据帧后,您可以将每个数据帧隐藏到它自己的 CSV 文件中。

我会研究AWK(参见例如 https://www.geeksforgeeks.org/awk-command-unixlinux-examples/(,这是许多Linux发行版中的标准实用程序。从我链接到的网站:

Awk是一个实用程序,使程序员能够编写微小但有效的代码 语句形式的程序,用于定义文本模式,这些文本模式是 要在文档的每一行中搜索,以及 在一行中找到匹配项时取用。Awk 最常使用 用于模式扫描和处理。它将一个或多个文件搜索到 查看它们是否包含与指定模式匹配的线条,以及 然后执行关联的操作。

相关内容

最新更新