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