1
resposta

[Dúvida] Como faço para mostrar um número máximo de linhas?

CORREÇÃO DO TÍTULO: Como faço para TRAVAR o número máximo de linhas que aparecem quando eu rodo .run()

Eu to usando outra ferramenta para acompanhar o curso e testando os códigos, porém quando rodo esse .run() trava tudo e eu gostaria que mostrasse as 5, 10 primeiras linhas só para saber se estou no 'caminho certo'. Da mesma forma como fazemos com o max_rows do pandas.

1 resposta

Olá, Paola!

Entendo que você quer limitar a quantidade de linhas exibidas quando executa .run() no Apache Beam, semelhante ao que fazemos com o max_rows no pandas. Infelizmente, o Apache Beam não possui uma funcionalidade direta para isso. Mas, você pode criar uma solução alternativa para atingir esse objetivo.

Uma maneira de fazer isso seria usar a transformação beam.combiners.Sample.FixedSizeGlobally() para pegar uma amostra dos seus dados. Aqui está um exemplo de como você pode fazer isso:

(p 
 | 'ReadData' >> beam.io.ReadFromText('input.txt')
 | 'Sample' >> beam.combiners.Sample.FixedSizeGlobally(10)
 | 'Unnest' >> beam.FlatMap(lambda x: x)
 | 'Print' >> beam.Map(print))

Neste exemplo, estamos lendo os dados de 'input.txt', pegando uma amostra de 10 elementos e depois imprimindo esses elementos. A transformação beam.FlatMap(lambda x: x) é usada para "desaninhar" a lista de elementos amostrados para que possam ser impressos corretamente.

Por favor, note que isso não garante a ordem dos elementos, pois o Apache Beam é projetado para processamento de dados distribuídos e desordenados. Se a ordem é importante para você, pode ser necessário considerar uma abordagem diferente.

Espero ter ajudado e bons estudos!