假设我有一个包含以下列(a,b,c)的表
如何编写pig语句来创建列(a)上的groupby。然后过滤count(b列>100)和count of(distinct(c列)>3)?
从我所拥有的:
我首先去掉b小于100的计数 filter_column = FILTER data by b > 100;
然后在一个 group_1 = GROUP filter_column by A;
如果c列中不同值的计数大于3,我现在如何过滤这个组?
假设我有一个包含以下列(a,b,c)的表
如何编写pig语句来创建列(a)上的groupby。然后过滤count(b列>100)和count of(distinct(c列)>3)?
从我所拥有的:
我首先去掉b小于100的计数 filter_column = FILTER data by b > 100;
然后在一个 group_1 = GROUP filter_column by A;
如果c列中不同值的计数大于3,我现在如何过滤这个组?
1条答案
按热度按时间klh5stk11#
要实现这一点,您可以在筛选值之前首先进行聚合(计算列b和不同列c)。
过滤标量(b列)不会产生与过滤聚合(计数b列)相同的结果。如果您希望对满足条件列b>100的记录进行聚合(count unique column c),那么应该首先应用该过滤器。