Apache pig 访问bag.tuple.bag.tuple中的数据
我在变量Apache pig 访问bag.tuple.bag.tuple中的数据,apache-pig,Apache Pig,我在变量data\u 1 describe data_1; output: group_2: {group: (age: int,phone: chararray),group_1: {(group: (age: int,phone: chararray,id: int),student_details: {(id: int,firstname: chararray,lastname: chararray,age: int,phone: chararray,city: chararray)})
data\u 1
describe data_1;
output:
group_2: {group: (age: int,phone: chararray),group_1: {(group: (age: int,phone: chararray,id: int),student_details: {(id: int,firstname: chararray,lastname: chararray,age: int,phone: chararray,city: chararray)})}}
及
我想删除额外的包。tuple&只使用$1。$1包
我试图通过使用group_2_normal=FOREACH data_1生成$0.age、$0.phone、$1.1代码>但我仍然无法移除围绕$1.$1袋子的额外袋子和元组
上述foreach命令的输出为:
21 9848022330 {({(4,Preethi,Agarwal,21,9848022330,London)})}
21 9848022337 {({(1,Rajiv,Reddy,21,9848022337,Paris)})}
但期望的产出是:
21 9848022330 {(4,Preethi,Agarwal,21,9848022330,London)}
21 9848022337 {(1,Rajiv,Reddy,21,9848022337,Paris)}
我认为使用flatte会对您有所帮助。只要你的袋子里只有一排,它就会给你想要的东西
group_2_normal = FOREACH data_1 GENERATE $0.age,$0.phone,FLATTEN($1.$1);
group_2_normal = FOREACH data_1 GENERATE $0.age,$0.phone,FLATTEN($1.$1);