s/null/UdfThatContainsASingleNull/ ?
On Mon, Dec 5, 2011 at 5:04 PM, Jonathan Coveney <[email protected]> wrote: > In pig8, the following worked: > > bag_of_stuff = load 'thing' as (x:int); > a = group bag_of_stuff all; > b = foreach a generate FLATTEN((IsEmpty(bag_of_stuff) ? null : > bag_of_stuff)) as stuff:int; > dump b; > > in pig9, however, in some cases, this could lead to an error, because you > need to explicitly set the type of "stuff," which leads to: > > bag_of_stuff = load 'thing' as (x:int); > a = group bag_of_stuff all; > b = foreach a generate FLATTEN((IsEmpty(bag_of_stuff) ? null : > bag_of_stuff)) as stuff:int; > dump b; > > However, this doesn't work in pig8. > > 2011-12-06 00:50:54,949 [main] ERROR org.apache.pig.tools.grunt.Grunt - > ERROR 1022: Type mismatch merging schema prefix. Field Schema: bytearray. > Other Field Schema: stuff: int > > I'm not sure what the best way around this is. You can't explicitly cast > (int)null, because then you get: > > 2011-12-06 01:02:11,962 [main] ERROR org.apache.pig.tools.grunt.Grunt - > ERROR 1050: Unsupported input type for BinCond: left hand side: int; right > hand side: bag > > Any suggestions would be welcome. Maybe it'd be worth making a flatten > that, in the case of an empty bag, returns a null row instead of getting > washed out? I know it's sort of annoying given I know how to make it work > in pig9, but I'd like for the script that uses this to work in both pig8 > and pig9, ideally...
