我有一组从文件加载的记录,我需要做的第一件事是获取列的最大值和最小值。在 SQL 中,我会使用这样的子查询来做到这一点:
select c.state, c.population,
(select max(c.population) from state_info c) as max_pop,
(select min(c.population) from state_info c) as min_pop
from state_info c
我认为在 PIG 中也必须有一种简单的方法来做到这一点,但我很难找到它。它具有 MAX 和 MIN 功能,但是当我尝试执行以下操作时,它不起作用:
records=LOAD '/Users/Winter/School/st_incm.txt' AS (state:chararray, population:int);
with_max = FOREACH records GENERATE state, population, MAX(population);
这没有用。我最好为每一行添加一个具有相同值的额外列,然后将它们分组到该列上。然后在那个新组中获得最大值。这似乎是一种获得我想要的东西的复杂方式,所以我想我会问是否有人知道更简单的方法。
在此先感谢您的帮助。