实际上,我正在编写pig脚本,如果满足其中一个条件,我想执行一些语句集。
我已经设置了一个变量,并检查该变量的一些值。假设
if flag==0 then
A = LOAD 'file' using PigStorage() as (f1:int, ....);
B = ...;
C = ....;
else
again some Pig Latin statements
我可以用Pig的脚本来做这个吗?如果是,那我怎么做?
谢谢。
实际上,我正在编写pig脚本,如果满足其中一个条件,我想执行一些语句集。
我已经设置了一个变量,并检查该变量的一些值。假设
if flag==0 then
A = LOAD 'file' using PigStorage() as (f1:int, ....);
B = ...;
C = ....;
else
again some Pig Latin statements
我可以用Pig的脚本来做这个吗?如果是,那我怎么做?
谢谢。
5条答案
按热度按时间wi3ka0sx1#
创建一个udf(比如java),然后将其嵌入到pig脚本中。您需要“注册”在编写udf之后生成的jar文件。
//(类似这样的),说你的java
UDF class
是UDFCondition
&生成的jar文件是pigudfcondition.jar,然后在PIG Code
注册pigudfcondition.jarwxclj1h52#
是的,pig确实提供了if-then-else结构,但它并没有按照您所要求的方式使用。
pig's if then else是一个用速记“condition”调用的算术运算符?true\u value:false\u value”作为表达式的一部分,例如:
必须已加载表a才能执行此操作。要围绕整个pig语句执行控制流,您将需要类似oozie的东西,正如fakrudeen所建议的那样。
ruarlubt3#
pig是数据流语言而不是控制流。唯一接近的结构是pig split,但它非常有限。
您可以将oozie及其决策构造与两个pig脚本一起使用。
vtwuwzda4#
从版本0.12起,有一个case语句可用。
mitkmikd5#
可以围绕pig脚本创建python Package 器。见文件中的嵌入式清管器。