with windowing started example beams google-cloud-dataflow apache-beam

google-cloud-dataflow - started - dataflow windowing



Apache Beam: FlatMap vs Mapa? (1)

Estas transformaciones en Beam son exactamente iguales a Spark (Scala también).

Una transformación de Map , mapea desde una PCollection de N elementos a otra PCollection de N elementos.

Una transformación FlatMap asigna un PCollections de N elementos en N colecciones de cero o más elementos, que luego se aplanan en un solo PCollection .

Como un simple ejemplo, sucede lo siguiente:

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

Mientras:

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

Quiero entender en qué escenario debería usar FlatMap o Map. La documentación no me pareció clara.

Todavía no entiendo en qué escenario debo usar la transformación de FlatMap o Map.

¿Podría alguien darme un ejemplo para que pueda entender su diferencia?

Entiendo la diferencia entre FlatMap y Map en Spark, y sin embargo, ¿no estoy seguro de si existe alguna similitud?