阿帕奇猪列首次出现

时间:2018-08-22 20:13:28

标签: apache-pig

我有一张桌子在拉动客户群。我有一个组ID,只希望组中的一个客户。组ID是数字,客户名称是字符。这是我第一次编写猪脚本。我发现所有可能解决此问题的方法就是分组,但是看来要使用任何功能,该列都必须为数字。我只想要其中一位客户,我不在乎哪一位。到目前为止,我有这样的事情:

cust_data = LOAD 'db.cust_base' USING [cloakhiveloader]; cust_all = FOREACH cust_data GENERATE group_id, cust_full_name;

我尝试将group与flatten或min甚至bottome一起使用,但是我尝试的所有内容都出现错误。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您需要按group_id分组,并使用限制1来为每个组获取1个客户名称。

cust_data = LOAD 'db.cust_base' USING [cloakhiveloader]; 
cust_all = FOREACH cust_data GENERATE group_id, cust_full_name;
group_cust_all = GROUP cust_all by group_id;
one_cust_per_group = FOREACH group_cust_all {
                          first = limit cust_all 1;
                          GENERATE FLATTEN(group),first.cust_full_name;
                     }
DUMP one_cust_per_group;