PIG 替换为 NULL

PIG REPLACE with NULL

我有三个值 A、B 和 C。

如果 A 和 B 的单元格中有值,我希望能够用 NULL 值替换 C 的值。

不确定去哪里。我试过类似

FOR EACH X GENERATE REPLACE(C, ((A IS NOT NULL AND B IS NOT NULL) ? NULL:C) ;

但不确定这是否有效,这似乎不对。我不想再添加任何值,只更新 C 的值?

也许像

FOR EACH X GENERATE (A IS NOT NULL AND B IS NOT NULL) ? NULL:C AS NEW_C;

然后去掉C,同时保留A、B和NEW_C?

你可以简单地做:

Y = FOREACH X GENERATE A, B, (A IS NOT NULL AND B IS NOT NULL ? NULL : C) AS C;

无需创建 NEW_C 然后删除 C,因为除非您明确命名它们,否则不会将任何字段带入新关系(除非您使用 GENERATE * 以便所有字段通过)。