1

我有一个 2 gig 的 csv 文件要解析,我认为 node 只允许低于 1 gig 的内存使用并且我得到这个错误:

Attempt to allocate Buffer larger than maximum size: 0x3fffffff bytes.

我想流式传输文件并将其写入 data.json 文件。

然后使用 mongoimport 将其写入 mongo。如果有更有效的方法,我愿意接受任何想法。我一直在使用 csvtojson,但我更喜欢使用 papaparse 作为我见过的最好的解析器,并且非常喜欢使用它。

使用 csvtojson

function csvToJson(callback){

console.log("in csvToJson");

var csvConverter = new Converter({constructResult: false, delimiter: delimiter, noheader: false  });

var readStream = require("fs").createReadStream("fileName");

var writeStream = require("fs").createWriteStream("outputData.json");

writeStream.on("close", function () {
    callback();
    readStream.close();
    writeStream.close();
});

readStream.pipe(csvConverter).pipe(writeStream);

}

4

0 回答 0