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.

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.

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.

¿Vamos ver si funciona?

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

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

Deja un comentario

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.