Modo de salida del idioma R

La firma de salida UDX es la definición de una función específica o resultado agregado. Puede ser un escalar (UDF/UDA) o una tabla (UDTF).

La firma de salida debe conocerse antes de una invocación UDX, lo que puede diferir de lo que suele ocurrir en R. Un caso de uso típico de R es la función apply que acepta un objeto data.frame, un margen que especifica el orden de aplicación y la función que se va a aplicar. La salida puede ser un vector, una matriz o una lista, dependiendo de la salida real de la función proporcionada por el usuario.
apply(iris, 1, function(x) length(x))
apply(iris[,1:4], 1, function(x) c(length(x),sqrt(as.double(x))))

En el Adaptador R, el modo de salida está controlado por la variable de entorno OUTPUT_TYPE que se establece durante el registro.

Para establecer esta variable, añade las siguientes líneas a la línea de comandos del script ' register_ae ':
  • Para el modo disperso, añade:
    --define "r_ae_output_type=SPARSE"
  • Para el modo tabla, añade:
    --define "r_ae_output_type=TABLE"

Modo de salida dispersa

Generalmente, la salida de la función proporcionada por el usuario no puede restringirse a ninguna forma predefinida. En el modo de salida dispersa, el R AE devuelve una tabla de la definición TABLE(columnid INT4, valueVARCHAR(16000)), lo que significa que cada columna de salida del R AE se convierte en una cadena de caracteres. Si desea recuperar el valor original, deberá convertir manualmente cada valor al tipo de datos deseado. Sin embargo, debe evitar esta práctica porque puede provocar errores de redondeo adicionales y afectar al rendimiento, especialmente en el caso de grandes conjuntos de datos.

En este modo, no hay diferencia entre devolver datos de salida con una función general ' setOutput ' y funciones específicas setOutput<DataType>, donde ' <DataType> ' es un marcador de posición para un identificador de tipo de datos específico. Todos los datos de salida se almacenan finalmente como una cadena de caracteres.

Modo de salida de tabla

El modo de salida de tabla alternativa requiere una de las siguientes configuraciones para la firma de salida que se proporciona durante el paso de registro:
  • Ajuste exacto que especifica las columnas con sus tipos de datos.
  • Establecido en TABLE(ANY) para el que debe definir una función de modelado que especifique la firma de salida en tiempo de ejecución.

En el modo de salida de tabla, evite la función setOutput. En su lugar, se utilizan funciones setOutput<DataType> ' específicas, donde ' <DataType> ' es un marcador de posición para un identificador de tipo de datos específico.