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))
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