

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Transforme los datos mediante operadores en Managed Service for Apache Flink con la API DataStream
<a name="how-operators"></a>

Para transformar los datos entrantes en un Managed Service para Apache Flink, utiliza un *operador* de Apache Flink. Un operador de Apache Flink transforma uno o más flujos de datos en un nuevo flujo de datos. El nuevo flujo de datos contiene datos modificados del flujo de datos original. Apache Flink proporciona más de 25 operadores de procesamiento de flujos prediseñados. Para obtener más información, consulte [Operators](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/datastream/operators/overview/) en la documentación de Apache Flink.

**Topics**
+ [Uso de operadores de transformación](#how-operators-transform)
+ [Uso de operadores de agregación](#how-operators-agg)

## Uso de operadores de transformación
<a name="how-operators-transform"></a>

El siguiente es un ejemplo de una transformación de texto simple en uno de los campos de un flujo de datos JSON. 

Este código crea un flujo de datos transformado. El nuevo flujo de datos tiene los mismos datos que el flujo original, con la cadena “` Company`” anexada al contenido del campo `TICKER`.

```
DataStream<ObjectNode> output = input.map(
    new MapFunction<ObjectNode, ObjectNode>() {
        @Override
        public ObjectNode map(ObjectNode value) throws Exception {
            return value.put("TICKER", value.get("TICKER").asText() + " Company");
        }
    }
);
```

## Uso de operadores de agregación
<a name="how-operators-agg"></a>

A continuación se muestra un ejemplo de operador de agregación. El código crea un flujo de datos agregado. El operador crea una ventana de caída de 5 segundos y devuelve la suma de los valores `PRICE` de los registros de la ventana con el mismo valor `TICKER`.

```
DataStream<ObjectNode> output = input.keyBy(node -> node.get("TICKER").asText())
    .window(TumblingProcessingTimeWindows.of(Time.seconds(5)))
    .reduce((node1, node2) -> {
        double priceTotal = node1.get("PRICE").asDouble() + node2.get("PRICE").asDouble();
        node1.replace("PRICE", JsonNodeFactory.instance.numberNode(priceTotal));
    return node1;
});
```

Para obtener ejemplos de código, consulte [Ejemplos de cómo crear y utilizar aplicaciones en Managed Service para Apache Flink](examples-collapsibles.md). 