Sto usando Atom/Electron per creare un'app che ha visualizzazioni su video in base ai dati. Ogni video ha un file CSV corrispondente con informazioni per ogni frame. I video sono circa 100 minuti, quindi i file hanno un sacco di dati!Il modo migliore per leggere da un grande file CSV senza caricare tutto in memoria utilizzando Javascript
Il problema che sto avendo è che ci vogliono un paio di secondi per caricare e analizzare il file. Il più delle volte questo non è un problema. Ma ho bisogno di creare playlist di parti di video e caricare l'intero file CSV ogni volta che un video viene modificato non è un'opzione praticabile.
Ho cercato di archiviare le opzioni di streaming come fast-csv, ma non sono riuscito a iniziare a leggere per una parte arbitraria del file.
MODIFICA: dalla documentazione di FS. In questo caso la domanda è: come posso sapere quale byte corrisponde alla posizione che voglio nel file?
le opzioni possono includere valori di inizio e fine per leggere un intervallo di byte dal file anziché dall'intero file. Sia inizio e la fine sono inclusiva e partono da 0.
Cosa pensi sarebbe il metodo migliore e più performante a questa situazione?
In concreto:
C'è un modo di partenza per leggere un flusso da qualsiasi parte di un file CSV?
Considerate che esiste un altro metodo di archiviazione che mi consentirebbe di risolvere meglio questo problema?
Le larghezze di colonna sono state corrette in csv? (ad esempio, la colonna 1 è sempre di 20 caratteri) –
Questa domanda potrebbe essere utile: http://stackoverflow.com/questions/6156501/read-a-file-one-line-at-a-time-in-node-js Non so abbastanza sul nodo per rispondere con certezza, ma mi sembra che tu voglia mandare on line il csv alla volta. –
@DevinH. no, ma ogni colonna è sempre un numero, quindi non sarebbe difficile usare una sorta di padding. Idealmente preferirei non farlo. Stavo pensando di indicizzare la posizione dei byte di ogni riga. E memorizzare un array con le posizioni. Non sarebbe un problema fare qualche elaborazione quando il file viene caricato per la prima volta. – limoragni