我可以使用什么方法从 csv/txt 文件中删除太大而无法加载到内存中并手动编辑的特定行?
背景
我的问题实际上是对与将 csv 导入 sql 数据库相关的问题的间接解决方案。
我有一系列 10-30gb 的 csv 文件,我想从 R 中导入并填充一个 sqlite 表(因为它们太大而无法作为一个整体的数据帧导入到 R 中)。我为此使用了“RSQlite”包。
一对夫妇因为与其中一行格式错误相关的错误而失败。然后取消填充过程。R 返回导致进程失败的行号。
给出的错误是:
./csvfilename line 102206973 expected 9 columns of data but found 3)
所以我确切地知道导致错误的行。
我看到了 2 个潜在的“间接”解决方案,我希望有人可以帮助我。
(i) 删除 20+gb 文件中导致错误的行。例如上面示例中的第 102,206,973 行。我不担心通过跳过或删除第 102,206,973 行中的数据来“丢失”它。但是,我尝试并未能以某种方式访问 csv 文件并删除该行。
(ii) 直接使用 sqlite(或其他任何东西?)导入一个 csv,它允许您跳过行或错误。
虽然不太可能与解决方案直接相关,但这里是使用的 R 代码。
db <- dbConnect(SQLite(), dbname=name_of_table)
dbWriteTable(conn = db, name ="currentdata", value = csvfilename, row.names = FALSE, header = TRUE)
谢谢!