使用 600 MB 及以上的大型 JSON 文件处理 Node js 的有效方法是什么?
我的伙伴从他的 REST API 中给了我非常大的 JSON 文件。600mb、1000mb
其结构如下
{ nameid1:[list id,....], nameid2:[list id,....], }
[list id,....] - 一个有ID的数组最多可以有上亿条记录。
现在要使用这些文件,我使用以下操作序列。
我把它保存到硬盘
使用 sed 命令,从单行文件中,我将其设为多行
例子
exec (`sed -i 's /', '/', '\n/g' file.json)
- 我使用 readline 直接处理文件
我尝试使用 JSONStream 但它导致 FATAL ERROR: CALL_AND_RETRY_LAST 分配失败 - JavaScript heap out of memory
function getStream() {
let jsonData = __dirname + '/jsonlarge/file.json',
stream = fs.createReadStream(jsonData, {
encoding: 'utf8'
})
parser = JSONStream.parse('*');
stream.pipe(parser)
parser.on('data', (data) => {
console.log('received:', data);
});
}
示例结构 json 文件
{"Work":"12122001","name":"Regist","world":[{"name":"000000","point":"rfg","Content":["3202b9a3fba","121323","2343454","45345543","354534534"]}, {"name":"000000","point":"rfg","Content":["3202b","121323","2343454","45345543","354534534"]}, {"name":"000000","point":"rfg","Content":["320","121323","2343454","45345543","354534534"]}]}
也许有人知道使用此类文件的更快方法。
谢谢