gpt4 book ai didi

hadoop - 使用 PigLatin 删除重复项并保留最后一个元素

转载 作者:可可西里 更新时间:2023-11-01 15:01:20 25 4
gpt4 key购买 nike

我正在使用 PigLatin。我想从包中删除重复项,并希望保留特定键的最后一个元素。

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);
};

有人可以帮我解决这个问题吗?提前致谢!

最佳答案

@Anil:如果您按降序排列其中一个字段。您将能够获得最后一条记录。在下面的代码中,已按输入的第二个字段排序(字段名称:脚本中没有)

输入:

User1,7,LA 
User1,8,NYC
User1,9,NYC
User2,3,NYC
User2,4,DC

pig 片段:

user_details = LOAD 'user_details.csv'  USING  PigStorage(',') AS (user_name:chararray,no:long,city:chararray);

user_details_grp_user = GROUP user_details BY user_name;

required_user_details = FOREACH user_details_grp_user {
user_details_sorted_by_no = ORDER user_details BY no DESC;
top_record = LIMIT user_details_sorted_by_no 1;
GENERATE FLATTEN(top_record);
}

输出:DUMP required_user_details

(User1,9,NYC )
(User2,4,DC)

关于hadoop - 使用 PigLatin 删除重复项并保留最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32014330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com