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行的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop PIG Max of Tuple

如何向从 Pig (Hadoop) 创建的文件添加标题行?

如何在hadoop pig中执行-fs

Solr扩展搜索仅返回前5行

数据库查询,返回前510行数据

记录主动泄漏到 Hadoop Pig 中?