我在用拉丁语。我想把这些复制品从袋子里拿出来,保留这把钥匙的最后一个元素。
Input:
User1 7 LA
User1 8 NYC
User1 9 NYC
User2 3 NYC
User2 4 DC
Output:
User1 9 NYC
User2 4 DC
这里第一个字段是一把钥匙。我想在输出中保留这个键的最后一条记录。
我知道如何保留第一个元素。具体如下。但无法保留最后一个元素。
inpt = load '......' ......;
user_grp = GROUP inpt BY $0;
filtered = FOREACH user_grp {
top_rec = LIMIT inpt 1;
GENERATE FLATTEN(top_rec);
};
有人能帮我吗?提前谢谢!
2条答案
按热度按时间fdx2calv1#
好 啊。。可以使用秩运算符。
希望下面的代码有帮助。
确保您从pig0.11版本运行这个命令,作为从pig0.11引入的rank操作符
f5emj3cl2#
@阿尼尔:如果你按一个字段降序排列。你就能拿到最后一张唱片了。在下面的代码中,按输入的第二个字段排序(字段名:脚本中的no)
输入:
pig代码段:
输出:转储所需的用户详细信息