猪群优化研究

时间:2015-07-08 07:32:39

标签: apache-pig

让我们假设我有一个大型数据集,如下面的架构布局

id,name,city
---------------
100,Ajay,Chennai
101,John,Bangalore
102,Zach,Chennai
103,Deep,Bangalore
....
...

我有两种猪代码给我相同的输出。

风格1:

records = load 'user/inputfiles/records.txt' Using PigStorage(',') as (id:int,name:chararray,city:chararray);
records_grp = group records by city;
records_each = foreach records_grp generate group as city,COUNT(records.id) as emp_cnt;
dump records_each;

风格2:

records = load 'user/inputfiles/records.txt' Using PigStorage(',') as (id:int,name:chararray,city:chararray);
records_each = foreach (group records by city) generate group as city,COUNT(records.id) as emp_cnt;
dump records_each ;

在第二种风格中,我使用了嵌套的Foreach。它是否样式2代码运行速度比样式1代码快。

我想减少完成这项工作所需的总时间..

那么Style 2代码实现了吗?或者总时间没有影响?

如果有人确认我,那么我可以在我的群集中使用非常大的数据集运行类似的代码

1 个答案:

答案 0 :(得分:1)

解决方案的成本相同。

但是如果records_grp未在其他地方使用,则版本2允许您不声明变量并且脚本更短。