我有一个问题,不理解apache pig (版本r0.9.2)是如何处理空值的否定的。我有一个类似这样的表达式:
nonEmpty = FILTER dataFields BY NOT IsEmpty(children);
如果子代为null,IsEmpty函数将返回null -所以让我困惑的是NOT运算符的行为方式,因为我的表达式如下:
nonEmpty = FILTER dataFields BY NOT NULL;
pig拉丁语r0.9.2的文档中写道:"Pig不支持boolean数据类型。但是,boolean表达式(包含boolean和比较操作符的表达式)的结果总是boolean类型(true或false)。“这只会让我完全迷惑。
提前感谢您的帮助。
发布于 2012-09-06 19:55:15
不管怎样,测试NULL是否为空可能不是一个好主意。事实上,我在0.10.0上试过了,它抛出了一个错误,就是这么说的。取而代之的是,按照非空和非空过滤:
nonEmpty = FILTER dataFields BY (children IS NOT NULL) AND (NOT IsEmpty(children));
https://stackoverflow.com/questions/12302687
复制相似问题