2012-09-06 49 views
1

我有一個問題不理解如何apache豬(版本r0.9.2)處理空值的否定。 我有一個這樣的表達:Pig如何處理否定空值?

nonEmpty = FILTER dataFields BY NOT IsEmpty(children); 

如果孩子爲空,IsEmpty函數將返回null - 還等什麼混淆我不要運營商將如何表現,因爲我也有這樣的表達:

nonEmpty = FILTER dataFields BY NOT NULL; 

豬拉丁語r0.9.2的文檔如下所示: 「豬不支持布爾數據類型。但是,布爾表達式(包括布爾和比較運算符的表達式)的結果始終爲布爾類型(true或false)。 「 這不會做任何事情,而完全混淆了我。

感謝您的幫助提前。

回答

4

無論如何,測試NULL爲空都不是一個好主意。實際上,我在0.10.0上試了一下,並且發現了一個錯誤。相反,過濾不爲空且不爲空:

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