我有一个 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);
}