我需要解析一个大的 csv 文件 (2gb)。必须验证这些值,必须删除包含“坏”字段的行,并且应该输出仅包含有效行的新文件。
我选择了 uniVocity 解析器库来做到这一点。请帮助我了解这个库是否非常适合该任务以及应该使用什么方法。
鉴于文件大小,在 uniVocity 中组织 read->validate->write 的最佳方法是什么?一次读取所有行还是使用迭代器样式?解析和验证的行在写入文件之前应该存储在哪里?
Univocity 有没有办法通过索引访问行的值?像 row.getValue(3) 之类的东西?
我要表:
CREATE TABLE `artist` (
`name` TEXT NOT NULL,
`gender` TEXT NOT NULL,
`city` TEXT NOT NULL,
PRIMARY KEY(name)
);
Run Code Online (Sandbox Code Playgroud)
和
create table artwork(
title text,
location text,
artist text,
primary key (title, artist),
foreign key (artist) references artist(name)
);
Run Code Online (Sandbox Code Playgroud)
'artwork'表中的'artist'列允许我插入不在引用列中的数据.
FOREIGN KEY约束还可以防止将无效数据插入到外键列中,因为它必须是它指向的表中包含的值之一.(c)W3school
我做错了吗?