crear columnas condicionales apache
Rafael Arruda

Rafael Arruda

Data Engineer | Specialist and Instructor Pentaho

Otros Artículos:

Cómo Crear Columnas Condicionales en Pentaho / Apache Hop: Guía Paso a Paso

Compartir en linkedin
LinkedIn
Compartir en facebook
Facebook
Compartir en twitter
Twitter
Compartir en whatsapp
WhatsApp

Es muy común que necesitemos crear columnas condicionales en Pentaho o Apache Hop en nuestro día a día, ya que no siempre tenemos la información lista de la forma que necesitamos.

Para quienes trabajan con bases de datos, probablemente están más acostumbrados a realizar esta tarea utilizando If o Case When; la lógica es exactamente la misma.

En este artículo, mostraré cómo hacerlo de dos maneras:

  • Simple.
  • Y un poco más compleja.

Para este ejemplo, tendremos dos columnas: Estado y Categorías.

Comenzando por la forma simple, utilizaremos el Value Mapper, que básicamente consiste en informar el valor de origen y el valor de destino.

value mapper

En este caso, si la tercera columna: Nombre del campo objetivo está en blanco, esto significa que reemplazaremos el valor en la misma columna. Sin embargo, como el tipo de datos es diferente, es decir, estamos leyendo datos de tipo Entero y generando una columna con datos de texto, estamos obligados a crear una nueva columna, ya que se produciría un error de conversión de tipo de datos.

Cuando se trata del mismo tipo de datos, no hay problema en utilizar la misma columna.

output value mapper

No es simple, esta es la forma fácil.

Ahora, supongamos que la columna que vamos a crear requiere combinar una condición entre la columna estado y también la columna categoría. Para esto, el Value Mapper ya no nos sirve; utilizaremos el paso: JavaScript.

Puede parecer un poco más complejo, pero en este caso también tenemos más libertad para crear de la forma que prefiramos.

Usaremos el siguiente script:

				
					//Script here
var stat;
if(status == 1 && categoria == "Cliente" ){
stat = "Activo";
}
else if (status== 0 && categoria == "Proveedor"){
stat = "Inactivo";
}
else { stat = null;
}

				
			

Si el status = 1 y la categoría = Cliente, devolverá el valor Activo. Si el status = 0 y la categoría = Cliente, devolverá el valor Inactivo. De lo contrario, será nulo.

javascript

¿Vamos ver si funciona?

output javascript

De esta forma, podemos crear columnas utilizando condicionales en Apache Hop / Pentaho.

Muchas gracias y hasta el próximo artículo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Business Data Master Logo

No te pierdas el

WEBINAR
Gratuito

Explicaremos en detalle los contenidos y objetivos del Business Data Master

29/11/2021

18:30 (GTM+1)

Online

BUSINESS DATA MASTER

* Tu información será utilizada exclusivamente para contactarte en relación al Business Data Master. No hacemos spam ni compartimos datos con terceros.

Best Data Solutions - Logo
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando utilizas nuestra web para personalizar el idioma o ayudar a nuestro equipo a comprender qué secciones de la web son más visitadas.