Hi David,
Try to *add parentheses* inside the TOBAG:
normal1 = TOBAG( ('$ID_NULL', 0L) );
or
value1 = ( IsEmpty(relation1) ? TOBAG( ('$ID_NULL', 0L) ) : relation1 );
The reason is because by TOBAG('$ID_NULL', 0L), you mean { ('$ID_NULL'),
(0) }. But I believe that what you want is { ('$ID_NULL', 0) } given the
schema of relation 1.
Thanks,
Cheolsoo
On Tue, Oct 30, 2012 at 10:22 AM, David LaBarbera <
[email protected]> wrote:
> I have a cogroup which effectively does a full outer join of two
> relations. Some of the relations are blank, so I have a FOREACH statement
> like
>
> grouped = COGROUP relation1 BY x, relation2 BY y;
> normalized = FOREACH grouped {
> normal1 = TOBAG('$ID_NULL', 0L);
> value1 = ( IsEmpty(relation1) ? normal1 : relation1 );
> GENERATE relation1, relation2;
> }
>
> I get an error on the bincond that left and right schemas don't match. I'm
> informed that TOBAG return
> bag{:tuple(:NULL)}
> for the schema
> and relation1 is
> bag{:tuple(id:chararrat,timestamp:long)}
>
> I'm running this on EMR which has a modified version of .0.9.2. Any
> thoughts on how to force TOBAG's schema to match relation1's?
>
> David
>
>