I'd try to describe original schema as varchar and the cast during order
by, e.g
order  relation by (char)orderkey1;
If pig does not accept cast in order, try to add additional foreach with
cast.
Last resort could be a udf that does the cast.

2012/8/31 Lauren Blau <lauren.b...@digitalreasoning.com>

> Could this be a problem with the original read of the data. It is stored in
> Json format and read with a custom Json loader.
> If I save the results of the loader to a file using PigStorage and then run
> the same script reading from that file the sort is done numerically.
>
> I've had other pig script problems which have been solved by explicitly
> storing and re-reading using PigStorage.
> I'm not sure what I can check in the loader (I didn't write it) to see what
> might be causing this,
> Any hints on how to debug this?
>
> Thanks,
> Lauren
>
> On Thu, Aug 30, 2012 at 6:10 PM, Lauren Blau <
> lauren.b...@digitalreasoning.com> wrote:
>
> > sorry, premature email :-).
> >
> > relation = key1 ,key2,orderkey1,val; //schema is
> > (chararray,int,int,chararray);
> >
> > groupbykey = group relation by (key1,key2);
> > foreach groupbykey {
> >     sorted = order  relation by orderkey1;
> >     generate flatten($0), MyUDF(sorted);
> > }
> >
> > I notice that when the 'sorted' values arrive in my UDF, they are sorted
> > lexically, not numerically. I checked the schema on the way in and
> > orderkey1 is definitely an int.
> >
> > Is there any way to force the order by into a numeric sort?
> >
> > Thanks,
> > Lauren
> >
> >
> > On Thu, Aug 30, 2012 at 5:59 PM, Lauren Blau <
> > lauren.b...@digitalreasoning.com> wrote:
> >
> >> I have the following foreach:
> >>
> >> foo := foreach bar {
> >>
> >>
> >
>



-- 
Best regards,
 Vitalii Tymchyshyn

Reply via email to