解释Apache Beam python语法

时间:2017-05-05 03:32:13

标签: python apache-beam

我已阅读了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))

1 个答案:

答案 0 :(得分:36)

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

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