这是Apache Pig的问题,我在Python脚本中运行Pig脚本。 Pig中有一个名为priority的字段,其值可以是随机数,也可以是null。每个输入记录应具有不同的随机数。在调用Pig脚本之前,Python代码将在随机数和null之间确定。
情景一: pig -param param1 ="" -f my_pig_script.pig
方案二(只是猜测): pig -function param1 = random() - f my_pig_script.pig两个如何在场景二下编写正确的Pig脚本?
由于
答案 0 :(得分:1)
有一件事是肯定的 - 你不需要(实际上不应该)将random()作为param传递,因为它只传递1个RANDOM NUMBER作为param,这是你不想要的。 问题是如何传达您的PIG脚本以使用null或随机。继续将null或非null值传递给param1,当你希望pig脚本使用random而不是null时传递非null。
在PIG内部脚本中,您可以使用三元运算符,如下所示:
A = FOREACH B GENERATE param1 IS NULL ? NULL : RANDOM();
希望这有帮助!