2017-04-27 5 views
1

Gibt es einen Unterschied zwischen ParDo und FlatMap in Dataflow/Apache Beam?ParDo vs FlatMap in Apache Beam?

Ich glaube, beide wenden eine Funktion auf jedes Element der eingehenden PCollection, und geben Sie das iterable; aber ich stelle mir vor, dass es einen Unterschied geben muss?

Antwort

4

FlatMap ist eine einfachere Operation built as you might expect from ParDo. Wenn dies Ihren Bedürfnissen entspricht, ist es eine gute Wahl.

ParDo ist ein niedrigerer Ebene Baustein elementweise Berechnung, die zusätzliche Funktionen hat wie side inputs, multiple output collections, access to the current window, einige wirklich niedrigen Niveau Rückrufe zum Starten und begehen Bündel von Elementen und vieles mehr.

In der Praxis enden viele Anwendungen von FlatMap und ParDo mit einem ähnlichen Code-Bulk, aber meiner Meinung nach ist es am lesbarsten, die einfachste (höchste Stufe) Transformation zu verwenden.

+0

Danke, das ist klar. Obwohl FWIW die Python-Beispiele verwenden 'FlatMap' mit seitlichen Eingaben: https://beam.apache.org/documentation/programming-guide/. 'ParDo' für die anderen, wie Sie vorschlagen – Maximilian

Verwandte Themen