Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

236
Views
¿Por qué recibo `Error: no se puede crear una cadena de más de 0x3fffffe7 caracteres`

Ejecutar el siguiente código Error: Cannot create a string longer than 0x3fffffe7 characters . Mi archivo contiene solo 2 matrices y está composed , todo el archivo contiene 1,3 GB. Quería combinarlos por id usando algo como el siguiente código para mapear a través de arrayMain y devolver cada objeto combinado con el objeto de arrayItems con la misma id y luego reestructurar ese objeto para descartar la id. Pero creo que me estoy topando con un límite del sistema. Soy bastante nuevo en el trabajo con archivos de datos de gran tamaño, por lo que se agradece cualquier ayuda.

 const composed = arrayMain.map((d) => { return { ...d, data: arrayItems.filter(({ ID }) => d.ID === ID).map(({notNeeded, ...needed}) => needed), }; });

Si alguien se pregunta cómo se estructuran mis datos

 const arrayMain = [ { ID: 30574062, number: 28234702, place: London, }, { ID: 30574063, number: 45232502, place: Paris, }, ... ]; const arrayItems = [ { "ID": 30574062, "anotherNumber": "52,3", "color": "red" }, { "ID": 30574062, "anotherNumber": "13", "color": "yellow" }, { "ID": 30574063, "anotherNumber": "60,6", "color": "blue" }, ... ] //expected result [ { ID: 30574062, number: 28234702, place: London, data: [ { "anotherNumber": "52,3", "color": "red" }, { "anotherNumber": "13", "color": "yellow" } ] }, { ID: 30574063, number: 45232502, place: Paris, data: [ { "anotherNumber": "60,6", "color": "blue" }, ] }, ... ]
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Probablemente haya una solución más atractiva, pero tal vez podría clasificar la matriz para que se escriba en fragmentos, y solo generar cadenas y llamar a appendFile en esos fragmentos, de modo que en ningún momento haya una sola cadena enorme. Después de crear composed , cree un flujo de escritura (para permitir muchas escrituras secuenciales sin errores) y siga llamando a .write en él.

 const stream = fs.createWriteStream(filePath, { flags:'a' }); stream.write('['); const CHUNK_LENGTH = 500; // alter as needed for (let i = 0; i < composed.length; i += CHUNK_LENGTH) { const chunkStr = JSON.stringify( composed.slice(i, i + CHUNK_LENGTH) ); stream.write(chunkStr); } stream.write(']'); // to wait for all of this to complete, watch for the stream's finish event
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!