hadoop pig返回前5行
Posted
技术标签:
【中文标题】hadoop pig返回前5行【英文标题】:hadoop pig return top 5 rows 【发布时间】:2012-11-29 18:04:13 【问题描述】:我想返回组的前 5 行。 基本上我有一个表格,上面有一些州名及其按州名分组的城市。我想要的是该州排名前 5 的城市,而不是全部。
如何使用猪来做到这一点? 提前谢谢你。
【问题讨论】:
How should I select top 10% of the table?的可能重复 @ChrisGerken 我不认为这完全一样。他先做一个分组,然后做一个前x。我明白这个问题了吗? @DonaldMiner:关键是两种情况下都使用LIMIT 正是我首先对我的数据进行了分组。这两种情况是什么意思? 【参考方案1】:在GROUP BY
之后,在FOREACH
内部...您可以先执行ORDER BY
,然后再执行LIMIT
。这将首先按城市大小对每个组中的事物进行排序,然后拉出前 5 名。
B = GROUP A BY state;
C = FOREACH B
DA = ORDER A BY citysize DESC;
DB = LIMIT DA 5;
GENERATE FLATTEN(group), FLATTEN(DB.citysize), FLATTEN(DB.cityname);
【讨论】:
以上是关于hadoop pig返回前5行的主要内容,如果未能解决你的问题,请参考以下文章