Pig如何处理否定空值?

时间:2012-09-06 14:47:22

标签: hadoop null apache-pig negate

我有一个问题,不明白apache pig(版本r0.9.2)如何处理空值的否定。 我有一个这样的表达式:

nonEmpty = FILTER dataFields BY NOT IsEmpty(children);

如果children为null,IsEmpty函数将返回null - 所以令我困惑的是NOT运算符的行为,因为我会有这样的表达式:

nonEmpty = FILTER dataFields BY NOT NULL;

猪拉丁文r0.9.2的文件说下: “Pig不支持布尔数据类型。但是,布尔表达式(包含布尔运算符和比较运算符的表达式)的结果总是类型为boolean(true或false)。” 除了让我完全迷惑之外什么都不做。

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

对于空虚测试NULL可能不是一个好主意。事实上,我在0.10.0上尝试过它,并且它提出了一个错误的说法。相反,过滤非空而不是空:

nonEmpty = FILTER dataFields BY (children IS NOT NULL) AND (NOT IsEmpty(children));