Poutre Apache: FlatMap vs Map?

je veux comprendre dans quel scénario je dois utiliser FlatMap ou Map. la documentation ne semble pas clair pour moi.

Je ne comprends toujours pas dans quel scénario je devrais utiliser la transformation de FlatMap ou Map.

quelqu'un Pourrait-il me donner un exemple afin que je puisse comprendre leur différence?

je comprends la différence entre FlatMap et Map dans Spark, et cependant pas sûr s'il y a une similitude?

11
demandé sur Luciano van der Veekens 2017-08-14 12:01:41

1 réponses

ces transformations en faisceau sont exactement les mêmes que Spark (Scala aussi).

Map transformation, cartes dans un PCollection de N éléments dans un autre PCollection de N éléments.

FlatMap transformation cartes PCollections de N éléments en n collections de zéro ou plus éléments, qui sont alors plat dans un PCollection.

un exemple simple, la suite il se passe:

beam.Create([1, 2, 3]) | beam.Map(lambda x: [x, 'any'])
# The result is a collection of THREE lists: [[1, 'any'], [2, 'any'], [3, 'any']]

attendu que:

beam.Create([1, 2, 3]) | beam.FlatMap(lambda x: [x, 'any'])
# The lists that are output by the lambda, are then flattened into a
# collection of SIX single elements: [1, 'any', 2, 'any', 3, 'any']
27
répondu Pablo 2017-08-15 04:35:44