Apache PIG中是否有任何条件IF运算符?

Bha*_*hah 16 hadoop apache-pig

实际上我正在编写PIG脚本,并且如果满足其中一个条件,则希望执行一些语句.

我设置了一个变量并检查该变量的某些值.假设

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

我可以在PIG脚本中执行此操作吗?如果是,那我该怎么做?

谢谢.

Wil*_*igh 22

是的,Pig确实提供了if-then-else结构,但它并没有像你要求的那样使用.

Pig的if-then-else 是一个算术运算符,用简写的"condition?true_value:false_value"作为表达式的一部分调用,例如:

X = FOREACH A GENERATE f2, (f2==1?1:COUNT(B));
Run Code Online (Sandbox Code Playgroud)

您必须已经加载了表A才能执行此操作.并进行以整个猪语句的控制流,你需要像Oozie的,由Fakrudeen的建议.


Lor*_*dig 6

您可以围绕Pig脚本创建Python包装器.请参阅文档中的Embedded Pig.


Fak*_*een 5

Pig 是数据流语言而不是控制流。唯一接近的构造是 PIG split,但它非常有限。

您可以将oozie及其决策构造与两个 Pig 脚本一起使用。