pig拉丁文获取第一个字段

tzdcorbm  于 2021-06-21  发布在  Pig
关注(0)|答案(2)|浏览(322)

我有下面的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

我使用pigload命令加载上面的文件,然后循环遍历它,得到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);

each1输出: ((001,Rajive,reddy)) 等。
现在我想得到第一个领域 each1ID 如何得到它。我尝试了下面的代码,但显示错误

each2 = foreach each1 generate(students.id)

我们需要从 each2 关系。

dfuffjeb

dfuffjeb1#

each2 = foreach each1 generate $0;
nx7onnlm

nx7onnlm2#

额外的括号被添加到 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 关系,你可以得到 each1 不使用限定符 students ,使用文件名或文件位置,如下所示:

each2 = foreach each1 generate id;
each2 = foreach each1 generate $0;

你会得到这样的结果:

(001)

相关问题