使用PapaParse / BabyParse读/写大文件

时间:2017-04-18 01:16:09

标签: json node.js csv converter papaparse

我有一个大型CSV文件(~500mb),我想使用BabyParse(PapaParse的节点版本)转换为JSON。对于较小的文件,我可以将CSV读入字符串,然后将字符串传递给parse。但是,500mb的文件太大而无法以这种方式读入字符串。

我有一个解决方法,将CSV文件作为一行逐行读取,但它的速度非常慢(见下文)。有人可以告诉我在Papa / Baby解析中使用大型CSV文件的更快方法吗?

var Baby = require('babyparse');
var fs = require('fs');
var readline = require('readline');
var stream = require('stream');
var file = '500mbbigtest.csv';
//var content = fs.readFileSync(file, { encoding: 'binary' }); DOESN'T WORK

var instream = fs.createReadStream('500mbbigtest.csv');
var outstream = new stream;
var rl = readline.createInterface(instream, outstream);

rl.on('line', function(line) {
  parsed = Baby.parse(line, {fastMode: false});
    rows = parsed.data;
    rows = JSON.stringify(rows);        
    fs.appendFileSync("blahblahblah.json", rows);
});

0 个答案:

没有答案