Apache pig ApachePig获取第一个出现的列

Apache pig ApachePig获取第一个出现的列,apache-pig,Apache Pig,我有一张桌子,在那里我有一个客户群。我有一个组id,只需要组中的一个客户。组id为数字,客户名称为字符。这是我第一次写猪脚本。我所能找到的可能解决这个问题的方法是分组,但似乎要使用任何函数,列都需要是数字。我只想要一个顾客,我不在乎是哪一个。到目前为止,我有这样的想法: cust_data=使用[fovehiveloader]加载'db.cust_base' cust\u all=FOREACH cust\u数据生成组id、cust\u全名 我曾尝试将group与flatte、min、甚至bot

我有一张桌子,在那里我有一个客户群。我有一个组id,只需要组中的一个客户。组id为数字,客户名称为字符。这是我第一次写猪脚本。我所能找到的可能解决这个问题的方法是分组,但似乎要使用任何函数,列都需要是数字。我只想要一个顾客,我不在乎是哪一个。到目前为止,我有这样的想法:

cust_data=使用[fovehiveloader]加载'db.cust_base'
cust\u all=FOREACH cust\u数据生成组id、cust\u全名


我曾尝试将group与flatte、min、甚至bottome一起使用,但每次尝试都会出现错误。任何帮助都将不胜感激。

您需要按组id分组,并使用限制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; 

如果我没有误解的话,您希望每组有一个客户?这就是我要找的。我只想补充一点,为了使用group_id与另一个表连接(这就是我首先需要这个的原因),我需要添加flatten(group)作为group_id,first.cust_full_name作为cust_full_name。非常感谢你这么做。