文件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,结果)
答案 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 ;