Я использую Papaparse для анализа CSV, и для каждой информации я запускаю вставку в представление, например так:
Papa.parse(createReadStream('geo.csv'), {
header: true,
chunk(data) {
console.log('chunk: ', data.data.length)
// data.data.length > 0 && tally.push(...data.data)
view.insert('test1', data.data)
},
complete() {
view.data('test1').length // this will return 0
console.log('memory:', process.memoryUsage().heapUsed / 1024 / 1024, ` == time: ${Date.now() - start}`)
},
})
единственный способ продолжить вставку новые данные должны быть либо:
call run () после вставки, insert('test1', data.data).run()
для «коммита», но мне пока не нужно его запускать, пока я не получу все data (именно поэтому я выполняю () в callback complete ()).
Мне нужно было бы проанализировать все сразу в памяти, а затем передать его, используя data('test1', allRows)
(что, я думаю, , будет использовать намного больше памяти)
как мне постепенно передавать данные в мое vega представление? Обратите внимание, что я запускаю это внутри веб-работника, насколько я знаю, Vega Loader не поддерживает экземпляр файла браузера (только URL-адреса для среды браузера), я использую papaparse.