让我们假设我有一个大型数据集,如下面的架构布局
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代码实现了吗?或者总时间没有影响?
如果有人确认我,那么我可以在我的群集中使用非常大的数据集运行类似的代码
答案 0 :(得分:1)
解决方案的成本相同。
但是如果records_grp
未在其他地方使用,则版本2允许您不声明变量并且脚本更短。