首页 > 解决方案 > 如何从巨大的 csv 文件中清除不良数据

问题描述

所以我有巨大的 csv 文件(假设 5 GB),我想将数据插入到表中,但它返回错误,即数据的长度不一样

我发现有些数据的列比我想要的多例如,我拥有的正确数据有 8 列,但有些数据有 9(可能是人为/系统错误)

我只想取8列数据,但由于数据太大,我无法手动或在python中使用解析

有什么方法可以推荐吗?

我正在使用 linux,所以也欢迎任何 linux 命令

在 sql 我使用 COPY ... FROM ... CSV HEADER; 将 csv 导入表的命令

标签: sqllinuxbigdata

解决方案


作为单个命令行的快速而肮脏的 php 解决方案:

php -r '$f=fopen("a.csv","rb"); $g=fopen("b.csv","wb"); while ( $r=fgetcsv($f) ) { $r = array_slice($r,0,8); fputcsv($g,$r); }'

它读取文件a.csv并写入b.csv.


推荐阅读