在 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 ???;
Run Code Online (Sandbox Code Playgroud)
我如何生成带有MAX年龄的人的名字?
您的逻辑问题是 MAX(age) 的人数可能超过 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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7513 次 |
| 最近记录: |