sql - 如何从巨大的 csv 文件中清除不良数据
问题描述
所以我有巨大的 csv 文件(假设 5 GB),我想将数据插入到表中,但它返回错误,即数据的长度不一样
我发现有些数据的列比我想要的多例如,我拥有的正确数据有 8 列,但有些数据有 9(可能是人为/系统错误)
我只想取8列数据,但由于数据太大,我无法手动或在python中使用解析
有什么方法可以推荐吗?
我正在使用 linux,所以也欢迎任何 linux 命令
在 sql 我使用 COPY ... FROM ... CSV HEADER; 将 csv 导入表的命令
解决方案
作为单个命令行的快速而肮脏的 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
.
推荐阅读
- python - Python SDF 阅读器失败
- javascript - 将 cryto.generateKeyPair 与 jsonwebtoken 一起使用
- c# - 在没有视图的情况下执行 Web 控制器操作 [c#]
- python - 无法为 fasttext 加载输入数据
- ios - 为什么这是一个保留周期?
- wordpress - WordPress metabox - 可编辑的 div 作为输入
- wpf - 完整列标题的 DataGrid 上下文菜单
- ajax - Laravel Ajax 实时搜索关系
- algorithm - 用于快速检索中间元素的数据结构
- python - Python - 模块“pyarrow”没有属性“表”错误