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?
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']