Je veux comprendre dans quel scénario utiliser FlatMap ou Map. La documentation ne m'a pas paru claire.
Je ne comprends toujours pas dans quel scénario utiliser la transformation de FlatMap ou Map.
Quelqu'un pourrait-il me donner un exemple pour que je puisse comprendre leur différence?
Je comprends la différence entre FlatMap et Map dans Spark, mais je ne sais pas s'il y a une similitude?
Ces transformations dans Beam sont exactement les mêmes que Spark (Scala aussi).
Une transformation Map
, mappe d'un PCollection
de N éléments en un autre PCollection
de N éléments.
Une transformation FlatMap
mappe un PCollections
de N éléments en N collections de zéro ou plusieurs éléments, qui sont ensuite aplatis en un seul PCollection
.
À titre d'exemple simple, les événements suivants se produisent:
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']]
Tandis 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']