您的位置:首页 > 其它

Pig foreach用法举例

2015-06-07 22:25 267 查看
foreach:一行一行的遍历数据,处理一行的数据,然后返回一个tuple。

users = load '/users.data';


1)别名引用

f = foreach users generate name, age;


  

2)位置引用

f = foreach users generate $0, $1;


  

3)字段区间 ..
从name字段开始到最后一个字段

f = foreach users generate name..


  

从第一个字段开始到age字段

f = foreach users generate ..age;


  

从name字段开始开始到age字段

f = foreach users generate name..age;


  

4)* 代表所有字段

foreach users generate *;


  

5)+-*/%等数学运算

foreach data generate $1-$0;


  

6)三目运算符 ? :

f = foreach users generate name, age>18?1:0;


  

7)map引用

data = load 'data' as (name:chararray, team:chararray, bat:map[]);
f = foreach data generate bat#'key1';


  

8)tuple引用

data = load 'data' as (name:chararray, team:chararray, bat:tuple(x:int, y:int));
f = foreach data generate bat.x;


  

9)bag引用

data = load 'data' as (name:chararray, team:charray, bat:bag{t:tuple(x:int, y:int)});
f = foreach data generate bat.x;


引用多个字段

f = foreach data generate bat.(x, y);


  

10)引用UDF

upped = foreach data generate UPPER($0) as a, $1 as b;
grped = group data by a;
sums = foreach grped generate group, SUM(b);


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: