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.
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.