Pig Latin 获取第一个字段

Pig Latin fetching first field

我有以下示例文件的 pig 代码。

001,Rajiv,Reddy,21,9848022337,Hyderabad
002,siddarth,Battacharya,22,9848022338,Kolkata
003,Rajesh,Khanna,22,9848022339,Delhi
004,Preethi,Agarwal,21,9848022330,Pune

我使用 PIG 加载命令加载上述文件,然后遍历它并获得 2,3 个字段,如下所示。

students = LOAD '/user/4965056e873066f2abe966b4129918/Pig_Data/students.txt' USING PigStorage(',') as (id:int,fname:chararray,lname:chararray,age:int,mob:chararray,city:chararray);
each1 = foreach students generate (id,fname,lname);

每个1的输出: ((001,Rajive,reddy))

现在我想获取 each1 的第一个字段,即 ID 如何获取它。我试过下面的代码但显示错误

each2 = foreach each1 generate(students.id)

需要从 each2 关系中获取第一个文件。

each2 = foreach each1 generate [=10=];

额外的括号被添加到 each1 关系中,只需删除它们:

students = LOAD '/user/4965056e873066f2abe966b4129918/Pig_Data/students.txt' USING PigStorage(',') as (id:int,fname:chararray,lname:chararray,age:int,mob:chararray,city:chararray);
each1 = foreach students generate id,fname,lname;

你会得到类似的东西:

(001,Rajive,reddy)

对于each2关系,你可以在不使用限定符students的情况下获得each1的任何字段,使用字段名称或字段位置,如下所示:

each2 = foreach each1 generate id;
each2 = foreach each1 generate [=12=];

你会得到类似的东西:

(001)