Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

249
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda