解释 Apache Beam python 语法
Explain Apache Beam python syntax
我已经通读了 Beam 文档,还查看了 Python 文档,但没有找到对大多数示例 Apache Beam 代码中使用的语法的很好解释。
谁能解释一下 _
、 |
和 >>
在下面的代码中做了什么?另外,引号中的文字 '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 中的运算符可以重载。在 Beam 中,|
是 apply
的同义词,它将 PTransform
应用于 PCollection
以生成新的 PCollection
。 >>
允许您命名一个步骤以便在各种 UI 中更容易显示——|
和 >>
之间的字符串仅用于这些显示目的和识别特定应用程序。
见https://beam.apache.org/documentation/programming-guide/#transforms
我已经通读了 Beam 文档,还查看了 Python 文档,但没有找到对大多数示例 Apache Beam 代码中使用的语法的很好解释。
谁能解释一下 _
、 |
和 >>
在下面的代码中做了什么?另外,引号中的文字 '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 中的运算符可以重载。在 Beam 中,|
是 apply
的同义词,它将 PTransform
应用于 PCollection
以生成新的 PCollection
。 >>
允许您命名一个步骤以便在各种 UI 中更容易显示——|
和 >>
之间的字符串仅用于这些显示目的和识别特定应用程序。
见https://beam.apache.org/documentation/programming-guide/#transforms