Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Pig, mail # user - Javascript UDF return Empty results


Copy link to this message
-
RE: Javascript UDF return Empty results
Eran Sagi 2013-06-18, 20:28
Hi Shahab,
 
Thanks for the fast replay!,
 
Yes, the reason is that I'm looking for a DateAdd capabilities, while the piggybank (as I understand it), handles only format conversion.
I'll appreciate if you can refer me to any samples of using Piggybank for DateAdd calculations.
 
Thanks,
 
Eran
 

 
> Date: Tue, 18 Jun 2013 13:17:19 -0400
> Subject: Re: Javascript UDF return Empty results
> From: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]
>
> Is there a special reason you are writing your own function? Have you taken
> a look at the following:
> http://pig.apache.org/docs/r0.11.0/api/org/apache/pig/piggybank/evaluation/datetime/convert/ISOToUnix.html
>
> Regards,
> Shahab
>
>
> On Tue, Jun 18, 2013 at 11:36 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
> >
> >