在PigLatin中,我想从我想要选择的记录中提取其他字段,因为汇总,例如MAX
。
我无法解释问题,所以这是一个例子。假设我想获取一个家庭中最老的人的名字:
关系A
是四列,(name, address, zipcode, age)
B = GROUP A BY (address, zipcode); # group by the address
# generate the address, the person's age, but how do I grab that person's name?
C = FOREACH B GENERATE FLATTEN(group), MAX(age), ??? Name ???;
如何生成MAX
年龄的人的姓名?
答案 0 :(得分:4)
您的逻辑问题是MAX(年龄)可能超过1人。然后你必须GROUP BY(名字,地址,年龄)。但是为了给你一个快速回答,我会写出只有最大年龄之一。 (我不确定它是最佳方式)
C = FOREACH B {
DA = ORDER A BY age DESC;
DB = LIMIT DA 1;
GENERATE FLATTEN(group), FLATTEN(DB.age), FLATTEN(DB.name);
}