Apache PIG - 如何获取 Flop 10 数据记录?

Posted

技术标签:

【中文标题】Apache PIG - 如何获取 Flop 10 数据记录?【英文标题】:Apache PIG - How to get the Flop 10 data records? 【发布时间】:2015-05-01 10:50:25 【问题描述】:

我有这样的数据记录:

Name          customerID revenue(Mio) premium          
Michael James 078932832  2.7          y
Susan Miller  024383490  3.9          n
John Cooper   021023023  2.1          y

我如何获得记录 - 分为溢价标志 - 每个收入最低 (=翻牌 10)?

结果应为:

Nr Name          customerID revenue(Mio) premium          
1  John Cooper   021023023  2.1          y
2  Michael James 078932832  2.7          y
3  Andrew Murs   044834399  3.0          y
.  ...           .....      ...          .
10 th entry      with       flag         y

1  Susan Miller  024383490  3.9          n
.  ...           .....      ...          .
10 th entry      with       flag         n

如您所见,列表按升序排列(从最低收入开始)。

【问题讨论】:

你已经尝试了什么? 【参考方案1】:

我猜你应该使用 split 考虑 A 是您的负载语句

A = load 'data' as (Nr,Name,customerID,revenue,premium);
B = split A into PRE if premium =='y', NONPRE if premium == 'n';
C = order PRE by revenue asc;
D = order NONPRE by revenue asc;

免责声明:使用拆分时要小心,因为空记录会被删除。这段代码我没有编译。

【讨论】:

非常感谢!我会测试它。但是如何在一个文件中获得两种不同的结果?# E = UNION C,D;转储 E;

以上是关于Apache PIG - 如何获取 Flop 10 数据记录?的主要内容,如果未能解决你的问题,请参考以下文章

Apache Pig - 如何获取多个包之间的匹配元素数量?

使用 Apache Pig 从文本文件中获取备用行

Apache Pig如何与Apache Lucene集成?

如何使用 apache pig 将一个包转换为多个包?

如何计算 Apache Pig 中字符串的长度?

如何规范化 apache pig 中的地图元组?