web-dev-qa-db-fra.com

Expliquez Apache Beam python

J'ai lu la documentation de Beam et j'ai également examiné la documentation Python mais je n'ai pas trouvé une bonne explication de la syntaxe utilisée dans la plupart des exemples de code Apache Beam.

Quelqu'un peut-il expliquer ce que le _, | , et >> font dans le code ci-dessous? Le texte entre guillemets, c'est-à-dire "ReadTrainingData", est-il également significatif ou pourrait-il être échangé avec une autre étiquette? En d'autres termes, comment cette étiquette est-elle utilisée?

train_data = pipeline | 'ReadTrainingData' >> _ReadData(training_data)
evaluate_data = pipeline | 'ReadEvalData' >> _ReadData(eval_data)

input_metadata = dataset_metadata.DatasetMetadata(schema=input_schema)

_ = (input_metadata
| 'WriteInputMetadata' >> tft_beam_io.WriteMetadata(
       os.path.join(output_dir, path_constants.RAW_METADATA_DIR),
       pipeline=pipeline))

preprocessing_fn = reddit.make_preprocessing_fn(frequency_threshold)
(train_dataset, train_metadata), transform_fn = (
  (train_data, input_metadata)
  | 'AnalyzeAndTransform' >> tft.AnalyzeAndTransformDataset(
      preprocessing_fn))
34
dobbysock1002

Les opérateurs de Python peuvent être surchargés. Dans Beam, | est un synonyme de apply, qui applique un PTransform à un PCollection pour produire un nouveau PCollection. >> vous permet de nommer une étape pour un affichage plus facile dans diverses interfaces utilisateur - la chaîne entre les | et le >> est uniquement utilisé à ces fins d'affichage et d'identification de cette application particulière.

Voir https://beam.Apache.org/documentation/programming-guide/#transforms

40
rf-