说明Apache Beam python语法

问题描述:

我已阅读了Beam文档,也查看了Python文档,但没有找到大部分示例Apache Beam代码中正在使用的语法的很好解释。说明Apache Beam python语法

任何人都可以解释什么_,|>>在下面的代码中做什么?还有引号中的文字,即'ReadTrainingData'有意义还是可以与其他标签交换?换句话说,这个标签是如何被使用的?

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

Python中的运算符可能被重载。在梁中,|apply的同义词,其将PTransform应用于PCollection以产生新的PCollection>>允许您命名一个步骤,以便在各种UI中更轻松地显示 - |>>之间的字符串仅用于这些显示目的并标识该特定应用程序。

请参阅https://beam.apache.org/documentation/programming-guide/#transforms

+0

谢谢!这非常有帮助。如果我理解正确然后他们使用_因为没有输出PCollection的writeMetadata转换? – dobbysock1002

+0

从理论上讲,它应该返回一个他们不需要的PDone [1](所以他们使用一次性_)。 [1] https://github.com/apache/beam/blob/master/sdks/python/apache_beam/pvalue.py#L163 –