Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

252
Vistas
Segmentar archivos de texto grandes y turnos rotativos para elementos en cada segmento

Tengo un tipo de archivo txt muy grande de '{some_string}|{repeated_value}', más de 50 millones de líneas.

 2312|dog 4214215|cat 42141241|dog fasfsa|cat 4214214|bird 42142141|cat fasfsa|bird fsafasf|dog 421jdsa|tiger

Necesito segmentar por su valor después de "|" símbolo. Algo como esto.

 2312|dog 42141241|dog fsafasf|dog 4214215|cat fasfsa|cat 42142141|cat 4214214|bird fasfsa|bird 42jdsa|tiger

Problema: es necesario tomar uno o n elementos de cada segmento y alimentarlos para que funcionen hasta que haya 0 elementos en cada segmento. (Round Robin)

Ejemplo de pitón:

 #Segmented lines dog = ['2312|dog', '42141241|dog', 'fsafasf|dog', 'dsafas|dog'] cat = ['4214215|cat', 'fasfsa|cat', '42142141|cat'] bird = ['4214214|bird', '4214214|bird'] tiger = ['442jssa|tiger'] animals = [dog, cat, bird, tiger] # Round Robin while len(animals): animal_list = animals.pop(0) if len(animal_list) == 0: continue line = animal_list.pop(0) print(line) animals.append(animal_list)

Ejemplo JS:

 const dog = ['2312|dog', '42141241|dog', 'fsafasf|dog', 'dsafas|dog'] const cat = ['4214215|cat', 'fasfsa|cat', '42142141|cat'] const bird = ['4214214|bird', '4214214|bird'] const tiger = ['442jssa|tiger'] const animals = [dog, cat, bird, tiger] // Round Robin while (animals.length) { let animal_list = animals.pop(0) if (animal_list.length == 0) { continue } let line = animal_list.pop(0) console.log(line) animals.push(animal_list) }

Producción:

 2312|dog 4214215|cat 4214214|bird 442jssa|tiger 42141241|dog fasfsa|cat 4214214|bird fsafasf|dog 42142141|cat dsafas|dog

No puedo cargar todas las líneas en la memoria, hay miles de "animales".

Se me ocurrió una sola solución, leer el archivo línea por línea, para cada animal crear una tabla en db. Cree un trabajador que llene la lista de "animales" cuando len < LIMIT e implemente round robin. ¿Alguna otra solución?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda