使用大型JSON文件(大小为600 MB及以上)处理Node js的有效方法是什么?

时间:2019-04-13 23:14:30

标签: node.js json

使用600 MB及以上的大型JSON文件处理Node js的有效方法是什么?

我的伴侣从他的REST API中获取了我所需的大JSON文件。 600mb,1000mb

其结构如下

  

{nameid1:[列表ID,....],nameid2:[列表ID,....],}

[list id,....]-具有ID的数组最多可以包含数亿条记录。

现在要使用此类文件,我将按照以下顺序进行操作。

  1. 我将其保存到硬盘中

  2. 使用sed命令,从单行文件将其设置为多行

示例

  

exec(`sed -i's /','/','\ n / g'file.json)

  1. 我使用readline直接处理文件

我尝试使用JSONStream,但这会导致致命错误:CALL_AND_RETRY_LAST分配失败-JavaScript堆内存不足

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"]}]}

也许有人知道使用此类文件的更快方法。

谢谢

0 个答案:

没有答案