将pig中的两个文件数据以所需格式连接到输出

时间:2013-08-06 18:34:21

标签: apache-pig

文件1包含数据:

Name ID 
-------
Mark 1
Gary 2
Robert 3

文件2包含数据:

ID  result
----------
1   success
2   Fail 
3   success

我将数据加载到两个变量a& b现在我想基于ID来加入数据,结果是成功的。我可以加入,但我收到的格式不正确。

a = load '/file1' as (Name:chararray,ID:int);
b = load '/file2' as (ID:int,result:chararray);
c = join a by a2, b by b1;

当我转储c时,我会以(名称,ID,ID,结果)的格式获取输出...我需要加入a& b以便我可以以 (名称,ID,结果)

的格式获取输出

2 个答案:

答案 0 :(得分:2)

您可以在加入前过滤b。

a = load '/file1' as (Name:chararray,ID:int);
b = load '/file2' as (ID:int,result:chararray);
z = FILTER b BY b2 == 'success';

然后加入a和z。     c =通过a1,z加入a b1;

稍后您需要在之前的回答中做@ m2ert所提及的事情。

答案 1 :(得分:1)

你做不到。您要做的是使用FOREACH投影要保留的字段。你可以这样做:

D = FOREACH C GENERATE a::Name as Name, a::ID as ID, b::result as result ;