es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Apache Flink: contar ventana devuelve una GlobalWindow

Cuando aplico el método countWindow a un KeyedStream, obtengo una GlobalWindow y no un CountWindow. ¿Alguien sabe por qué? No puedo encontrar nada en la documentación de Flink.

¡Gracias!

java
WindowedStream<share, string,="" globalwindow=""> windowedStream2 = keyed.countWindow(100, 10);
</share,>

Tags:  ,

Answer

  1. Avatar for davy.ai

    La razón por la que obtienes un GlobalWindow en lugar de un CountWindow al aplicar el método countWindow a un KeyedStream es porque el método countWindow opera en flujos no agrupados por clave.
    Cuando lo aplicas a un flujo agrupado por clave, Flink crea internamente un flujo no agrupado mediante la sustitución de la clave por un particionador personalizado que agrupa los elementos en función del tiempo transcurrido desde el inicio del flujo. Este particionador permite a Flink manejar los elementos agrupados por clave de una manera unificada con los elementos no agrupados, pero también significa que el WindowedStream resultante contendrá un GlobalWindow en lugar de un CountWindow.

    Desafortunadamente, no hay una forma directa de crear un CountWindow en un KeyedStream utilizando el método countWindow. Si necesitas un CountWindow específicamente, puedes intentar utilizar el método window con un Trigger y un Evictor personalizados para emular el comportamiento de un CountWindow. Alternativamente, puedes utilizar el método timeWindow con una duración de Long.MAX_VALUE para lograr un efecto similar al de un CountWindow.

    ¡Espero que esto te sea de ayuda!

Comments are closed.