2017-05-05 23 views
6

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

答えて

13

Pythonの演算子はオーバーロードすることができます。ビームでは、|PTransformPCollectionに適用してPCollectionを生成するapplyの同義語です。 と>>の間の文字列は、これらの表示目的でのみ使用され、その特定のアプリケーションを識別するために使用されます。

を参照してくださいhttps://beam.apache.org/documentation/programming-guide/#transforms

+0

ありがとうございました!これは非常に役に立ちます。私が正しく理解しているのであれば、writeMetadataトランスフォームの出力PCollectionがないので、_を使用していますか? – dobbysock1002

+0

概念的には、必要のないPDone [1]を返さなければなりません(したがって、使い捨て_を使用します)。 [1] https://github.com/apache/beam/blob/master/sdks/python/apache_beam/pvalue.py#L163 –

関連する問題