我有一张桌子在拉动客户群。我有一个组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一起使用,但是我尝试的所有内容都出现错误。任何帮助将不胜感激。
答案 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;