Apache pig 连接并更换清管器

Apache pig 连接并更换清管器,apache-pig,Apache Pig,我有两个包 A= 1,Anju,P,3.6,IT,A,1.6,0.3 2,Remya,P,3.3,EEE,B,1.6,0.3 B= 1,5.3 2,4.9 我试图用下一个包中的值替换每个元组中的“p” 1,Anju,5.3,3.6,IT,A,1.6,0.3 2,Remya,4.9,3.3,EEE,B,1.6,0.3 尝试使用JOIN 1,Anju,P,3.6,IT,A,1.6,0.3,1,5.3 2,Remya,P,3.3,EEE,B,1.6,0.3,2,4.9 但是我能使用任何类似于W

我有两个包

A=
1,Anju,P,3.6,IT,A,1.6,0.3
2,Remya,P,3.3,EEE,B,1.6,0.3

B=
1,5.3
2,4.9
我试图用下一个包中的值替换每个元组中的“p”

1,Anju,5.3,3.6,IT,A,1.6,0.3
2,Remya,4.9,3.3,EEE,B,1.6,0.3
尝试使用JOIN

1,Anju,P,3.6,IT,A,1.6,0.3,1,5.3
2,Remya,P,3.3,EEE,B,1.6,0.3,2,4.9
但是我能使用任何类似于
WHERE
子句的东西吗

jnd = JOIN A by $0,B by $0 --where P in each tuple replace with value in B

您可以使用FOREACH按所需顺序使用联接和项目字段。。。产生

JND = JOIN A by $0, B BY $0;
JND = FOREACH JND GENERATE $0, $1, $9, $3, $4, $5, $6, $7;

我建议您在加载数据时使用字段名称。它使一切变得更容易

是的,但这将是静态的,对吗?我正在尝试重用我的Pigscription你到底是什么意思?对不起。我的意思是,如果我们编写这样的脚本,它只能用于特定的输入。如果输入包含11个以上的字段,该怎么办?我们需要手动添加最多10美元。您可以始终这样进行项目,直到结束:JND=FOREACH JND GENERATE$0、$1、$9、$3。。;然而,我认为$9将在您的数据集中重复:(我们可以使用replace和join来实现吗