1
resposta

Como posso fazer para mostrar a PCollection?

Eu gostaria que, conforme aplicando o pipeline, ir visualizando os resultados (pelo menos o cabeçalho e os primeiros itens da PCollection. Visto que se eu jogar o pipeline.run(), o código trava e demoro para conseguir retornar do ponto em que parei.

1 resposta

Bom dia!

Existem algumas maneiras de exibir uma PCollection. Uma maneira é usar o método display().

  • O método display() pega um PCollection e o exibe em uma tela.
  • O método write() pega um PCollection e o escreve em um arquivo ou em um banco de dados.
  • O método apply() pega um PCollection e aplica um pipeline a ele. O pipeline pode incluir transformações que exibem os dados da PCollection.

Aqui está um exemplo de como usar o método display() para exibir uma PCollection:

import apache_beam as beam

with beam.Pipeline() as pipeline:
  lines = (
      pipeline
      | 'ReadFromText' >> beam.io.ReadFromText('input.txt')
  )

  # Display the PCollection.
  lines | 'Display' >> beam.io.WriteToDisplay()

pipeline.run()

Este código vai ler o arquivo input.txt e exibir os dados em uma tela.

Aqui está um exemplo de como usar o método write() para exibir uma PCollection:

import apache_beam as beam

with beam.Pipeline() as pipeline:
  lines = (
      pipeline
      | 'ReadFromText' >> beam.io.ReadFromText('input.txt')
  )

  # Write the PCollection to a file.
  lines | 'WriteToFile' >> beam.io.WriteToText('output.txt')

pipeline.run()

Este código vai ler o arquivo input.txt e escrever os dados no arquivo output.txt.

Aqui está um exemplo de como usar o método apply() para exibir uma PCollection:

import apache_beam as beam

with beam.Pipeline() as pipeline:
  lines = (
      pipeline
      | 'ReadFromText' >> beam.io.ReadFromText('input.txt')
  )

  # Apply a pipeline to the PCollection and display the output.
  lines | 'Transform' >> beam.Map(lambda x: x.upper()) | 'Display' >> beam.io.WriteToDisplay()

pipeline.run()

Este código vai ler o arquivo input.txt e exibir os dados em uma tela, mas com todas as letras maiúsculas.

Espero que isso ajude!