我正在使用csv-to-json,这是一个很好的处理CSV文件的库。
我有一个用例,需要处理一个大型(>200万行)的CSV文件并将其插入到数据库中。为了避免内存问题,我打算将CSV作为流进行处理,每10000行暂停一次流,将行插入到我的数据库中,然后恢复流。但由于某种原因,我似乎无法暂停流。
例如,以下代码:
"count"被记录了200次(这是我CSV文件中的行数)- 我本来期望它不会记录任何东西,因为在将其传递给"fromStream()"之前流已经被暂停了。
我有一个用例,需要处理一个大型(>200万行)的CSV文件并将其插入到数据库中。为了避免内存问题,我打算将CSV作为流进行处理,每10000行暂停一次流,将行插入到我的数据库中,然后恢复流。但由于某种原因,我似乎无法暂停流。
例如,以下代码:
const rs = fs.createReadStream("./foo.csv");
rs.pause();
let count = 0;
csv()
.fromStream(rs)
.on("json", (json) => {
count++;
console.log(count);
})
.on("done", () => {
cb(null, count);
})
.on("error", (err) => {
cb(err);
})
"count"被记录了200次(这是我CSV文件中的行数)- 我本来期望它不会记录任何东西,因为在将其传递给"fromStream()"之前流已经被暂停了。