tutorial spark script pig hadoop apache-pig

hadoop - spark - pig script



¿Hay algún operador Conditional IF like en Apache PIG? (5)

En realidad, estoy escribiendo PIG Script y quiero ejecutar algunos conjuntos de declaraciones si se cumple una de las condiciones.

Configuré una variable y comprobé el valor de esa variable. Suponer

if flag==0 then A = LOAD ''file'' using PigStorage() as (f1:int, ....); B = ...; C = ....; else again some Pig Latin statements

¿Puedo hacer esto en PIG Script? Si es así, ¿cómo puedo hacer esto?

Gracias.


Puedes crear un contenedor Python alrededor de tu script Pig. Consulte Embedded Pig en los documentos.


Cerdo es el flujo de datos del lenguaje no control de flujo. Solo la construcción que se acerca es la división PIG, pero es muy limitada.

Puede usar oozie y su construcción de decisión con dos scripts porcinos.


Sí, Pig ofrece una construcción if-then-else, pero no se usa de la forma en que se lo pregunta .

Pig''s if-then-else es un operador aritmético invocado con la abreviatura "condición? True_value: false_value" como parte de una expresión, como por ejemplo:

X = FOREACH A GENERATE f2, (f2==1?1:COUNT(B));

Ya debe haber cargado la tabla A para hacer esto. Para ejecutar el flujo de control alrededor de sentencias completas de Pig, necesitarás algo como oozie , como lo sugiere Fakrudeen.


Cree un UDF (por ejemplo, en Java) y luego incrústelo en su script PIG . Necesitarás ''registrar'' el archivo jar que generas después de escribir el UDF .

// (algo así), digamos que su UDF class Java UDF class es UDFCondition y el archivo jar generado es PigUDFCondition.jar , luego en su PIG Code

registrarse PigUDFCondition.jar

X = foreach A generate UDFCondition(..flag...)


Hay una declaración CASE disponible desde la versión 0.12 en adelante.