Eran,
It looks like the problem is in your return statement. Your Pig schema has
one field called 'result' of type 'long,' so you should return {'result':
result}.
-Sven
On Tue, Jun 18, 2013 at 8:25 AM, Eran Sagi <[email protected]> wrote:
> Hi,
> I’ve written a PIG LATIN batch which loads a CSV file.
> To support DateAdd calculation I’ve written and registered a javascript
> function,
> Although tested outside of PIG environment successfully , the DUMP output
> returns empty for all values.
>
> Enclosed is the Java Script:
>
> Calcadd.outputSchema = “result:long”;
> function Calcadd(curdate) {
> var tmp = curdate.replace(“-”, “/”);
> var tmp = tmp.replace(“-”, “/”);
> var tmp2 = new Date(tmp);
> tmp2.setDate(tmp2.getDate() – 7);
> var y = tmp2.getFullYear();
> var m = (tmp2.getMonth()+1);
> var d = tmp2.getUTCDate();
> var result = (y * 10000 + m * 100 + d);
> return {long:result};
> }
>
> Enclosed is the register tag of the batch:
>
> register ‘C:\Samples\Calc.Js’ using javascript as myfunctions;
>
> Enclosed is the invocation:
> D = FOREACH C GENERATE DeviceID, CountryTwoLetterName,
> myfunctions.Calcadd(tmpDATE) as newData;
> E = DUMP D;
>
> the tmpDate field is a 10 character char array : ’2012-04-21′
> Representing 4Y-MM-DD structure
> The Dump statement returns empty values for the ‘newData’ field (the
> output of the UDF)
>
> I’ll appreciate and insights
> Thanks,
> Eran
>
--
http://sites.google.com/site/krasser/?utm_source=sig