0

文件 1 包含以下数据:

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

文件 2 包含以下数据:

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

我将数据加载到两个变量中ab现在我想根据 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 时,我得到格式为(name,id,id,result)的输出......我需要如何加入a&b这样我才能得到格式为(name,id,result)的输出

4

2 回答 2

2

你不能。您需要做的是投影您想要继续使用的字段FOREACH。你可以这样做:

D = FOREACH C GENERATE a::Name as Name, a::ID as ID, b::result as result ;
于 2013-08-06T18:46:37.260 回答
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 = a2加入a,b1加入z;

稍后您需要执行@m2ert 在上一个答案中提到的操作。

于 2013-08-07T12:44:13.393 回答