Ah, this is the most common error for people starting out :)

SUM is a function which takes a bag (not a relation or a column) and
returns the sum of the elements in that bag.

Try:

A = LOAD 'v.log'  AS (a:double) ;
B = foreach (group A all) generate SUM(A) ;
dump B;

2012/5/17 John Morrison <[email protected]>

> OK. I have simplified the script and  tried 2 different ways without
> success:
>
>  1)   B = foreach A generate flatten($0),  SUM($0.a) ;
>  2)   B = foreach A generate flatten($0),  SUM(a) ;
>
> Which both produce different errors(see below)?
>
> Thanks,
>
> John
>
> Data:
> cat  v.log
>
> 1
> 2
> 3
> 4
>
>
> Complete script 1 with error:
>
> A = LOAD 'v.log'  AS (a:double) ;
> dump A;
> B = foreach A generate flatten($0),  SUM($0.a) ;
> dump B;
>
> Error for above script:
> 2012-05-17 20:54:11,836 [main] ERROR org.apache.pig.tools.grunt.Grunt -
> ERROR 1000: Error during parsing. Invalid alias: a in null
>
>
> Complete script 2 with error:
>
>
> A = LOAD 'v.log'  AS (a:double) ;
> dump A;
> B = foreach A generate flatten($0),  SUM(a) ;
> dump B;
>
>
> 2012-05-17 20:56:11,795 [main] ERROR org.apache.pig.tools.grunt.Grunt -
> ERROR 1045: Could not infer the matching function for
> org.apache.pig.builtin.SUM as multiple or none of them fit. Please use an
> explicit cast.
>
>
>
>
> On Thu, May 17, 2012 at 6:31 PM, Jonathan Coveney <[email protected]
> >wrote:
>
> > I imagine the issue is that you're not giving it a bag... can you paste
> the
> > whole script? That said, my guess is that this comes right after a group
> > by, and that the following will fix it:
> >
> > C = foreach B generate flatten($0),  sum($0.lane_nbr) ;
> >
> > but I'd need the whole script to be sure
> >
> > 2012/5/17 John Morrison <[email protected]>
> >
> > > OK. New problem with needing to use explicit cast?
> > >
> > > Could you give me syntax for explict cast?
> > >
> > > 2012-05-17 15:29:13,769 [main] ERROR org.apache.pig.tools.grunt.Grunt -
> > > ERROR 1046: Multiple matching functions for org.apache.pig.builtin.SUM
> > with
> > > input schema: ({{bytearray}}, {{double}}). Please use an explicit cast.
> > >
> > >
> > >
> > > On Thu, May 17, 2012 at 11:42 AM, Prashant Kommireddi
> > > <[email protected]>wrote:
> > >
> > > > UDFs are case-sensitive. It should be all caps - SUM
> > > >
> > > > Can you please give that a try?
> > > >
> > > >
> > > > On May 17, 2012, at 8:24 AM, John Morrison <
> [email protected]>
> > > > wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > I am new to ping and am unable to use pig builtin functions (please
> > see
> > > > > details below).
> > > > >
> > > > > Is this a CLASSPATH issue?
> > > > >
> > > > > Any ideas on how to resolve?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > John
> > > > >
> > > > > Details
> > > > >
> > > > > ### Line in pig script causing issue
> > > > > C = foreach B generate flatten($0),  sum(lane_nbr) ;
> > > > >
> > > > > ### Error message
> > > > > 2012-05-17 11:15:41,673 [main] ERROR
> org.apache.pig.tools.grunt.Grunt
> > > - \
> > > > >  ERROR 1070: Could not resolve sum using imports: [,
> > > > > org.apache.pig.builtin., org.apache.pig.impl.builtin.]
> > > > >
> > > > > pig -version
> > > > > Apache Pig version 0.8.1-cdh3u3 (rexported)
> > > >
> > >
> > >
> > >
> > > --
> > > John Morrison
> > >
> >
>
>
>
> --
> John Morrison
>

Reply via email to