1

apache pig(バージョンr0.9.2)がnull値の否定をどのように処理しているかを理解できないという問題があります。私はこのような表現をしています:

nonEmpty = FILTER dataFields BY NOT IsEmpty(children);

子がnullの場合、IsEmpty関数はnullを返します。したがって、次のような式があるため、NOT演算子がどのように動作するかを混乱させます。

nonEmpty = FILTER dataFields BY NOT NULL;

pig latin r0.9.2のドキュメントには、次のように記載されています。「Pigはブールデータ型をサポートしていません。ただし、ブール式(ブール式と比較演算子を含む式)の結果は、常にブール型(trueまたはfalse)になります。」それは私を完全に混乱させる以上のことは何もしません。

よろしくお願いします。

4

1 に答える 1

4

NULLの空性をテストすることは、それでもおそらく良い考えではありません。実際、0.10.0で試してみたところ、まさにそのことを言ってエラーが発生しました。代わりに、nullでも空でもないことでフィルタリングします。

nonEmpty = FILTER dataFields BY (children IS NOT NULL) AND (NOT IsEmpty(children));
于 2012-09-06T19:55:15.067 に答える