所以我有一个巨大的csv文件(假设5GB),我想将数据插入到表中,但是它返回的错误是数据的长度是不一样的。
我发现有些数据的列比我想要的多,例如,我拥有的正确数据有8列,但有些数据有9列(可能是人工/系统错误)。
我只想获取8列数据,但是由于数据太大,我不能手动完成,也不能在python中使用解析。
有什么方法推荐吗?
我使用的是linux,所以任何linux命令都欢迎
在sql中我使用的是副本..。从..。CSV头;命令将csv导入表
发布于 2020-02-21 09:03:16
为此,您可以使用awk。假设您的字段分隔符是逗号(,),这段代码可以完成以下工作:
awk -F\, 'NF==8 {print}' input_file >output_file发布于 2020-02-21 12:58:56
一个快速和脏的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。
https://stackoverflow.com/questions/60335133
复制相似问题