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.

Objeto de configuración pasado por el método open de la clase AbstractRichFunction de Flink.

¿Cómo podríamos utilizar la instancia de configuración que se pasa en open() en AbstractRichFunction?
He intentado agregar la siguiente lógica al main() del trabajo, pero me dice que la configuración no se puede modificar (es inmutable según se indica en la documentación de Java):

var config = (Configuration) StreamExecutionEnvironment.getExecutionEnvironment().getConfiguration();
config.setString(/* un objeto ConfigOption aquí */, "valor-de-prueba-config");

He descubierto que los parámetros del trabajo global funcionan para valores de cadena, pero me pregunto qué podríamos hacer con la instancia de configuración en open(). Gracias.

Para su información, lo siguiente funciona:

ParameterTool parameters = (ParameterTool)
            getRuntimeContext().getExecutionConfig().getGlobalJobParameters();
var value = parameters.getRequired("clave-de-config-de-prueba");
Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Java y Apache Flink, puedes utilizar la instancia de configuración pasada por open() en AbstractRichFunction para acceder a la configuración del trabajo.

    La instancia de configuración proporcionada en open() se puede usar para acceder a cualquier par clave-valor establecido en la configuración del trabajo. Puedes obtener la instancia de Configuration llamando a getRuntimeContext().getExecutionConfig().getGlobalJobParameters(), y luego usar los métodos de Configuration para leer los valores.

    Si bien no es posible modificar directamente la instancia de Configuration, puedes utilizar los parámetros globales del trabajo para pasar valores de cadena a la configuración. Para hacer esto, utiliza la instancia de ParameterTool para obtener los valores de los parámetros del trabajo llamando a parameters.getRequired(“clave”) en el método open().

    En general, la instancia de configuración pasada por open() se puede utilizar para acceder y leer la configuración del trabajo. Por otro lado, la instancia de ParameterTool se puede utilizar para pasar valores de cadena a la configuración a través de los parámetros globales del trabajo.

Comments are closed.