because there is nothing to group
On Mar 5, 2013, at 3:14 AM, Jonathan Coveney <[email protected]> wrote:

> Why don't you want to group?
> 
> 
> 2013/3/5 Preeti Gupta <[email protected]>
> 
>> I want to compute the Average for 1 column dataset
>> 1
>> 2
>> 3
>> 4
>> 5
>> 
>> and I am not able to do without grouping.
>> 
>> However I got an average with
>> 
>> avg = foreach (group dividends all) generate AVG(dividends);
>> 
>> But
>> 
>> avg       = foreach (filter dividends by A>-10000000.0) generate AVG(A);
>> 
>> says use explicit cast.
>> 
>> My script is very small
>> 
>> dividends = load 'myfile.txt' as (A:double);
>> dump dividends
>> --grouped   = filter dividends by A>-10000000.0;
>> avg       = foreach (filter dividends by A>-10000000.0) generate AVG(A);
>> 
>> 
>> 
>> <file try.pig, line 5, column 65> Multiple matching functions for
>> org.apache.pig.builtin.AVG with input schema: ({{(bytearray)}},
>> {{(double)}}). Please use an explicit cast.
>> 
>> 
>> On Mar 4, 2013, at 8:30 PM, Prashant Kommireddi <[email protected]>
>> wrote:
>> 
>>> Hi Preeti,
>>> 
>>> Using FILTER or not depends on your requirements and has nothing to do
>> with
>>> SUM or AVG.
>>> 
>>> SUM, AVG accept bags as input, so as long as you are able to provide that
>>> it should be fine. (Though its very common that users use GROUP BY to
>>> rollup on a key before using these UDFs).
>>> 
>>> For example:
>>> 
>>> grunt> cat data
>>> 1    5
>>> 5    8
>>> 
>>> grunt> A = load 'data';
>>> grunt> B = foreach A generate TOBAG($0, $1) as bagg;
>>> grunt> dump B;
>>> ({(1),(5)})
>>> ({(5),(8)})
>>> 
>>> grunt> C = foreach B generate AVG(bagg);
>>> grunt> dump C;
>>> (3.0)
>>> (6.5)
>>> 
>>> -Prashant
>>> 
>>> 
>>> On Mon, Mar 4, 2013 at 3:50 PM, Preeti Gupta <[email protected]
>>> wrote:
>>> 
>>>> Hello,
>>>> 
>>>> Can I compute SUM or AVG without using GROUPBY OR FILTER?
>>>> 
>> 
>> 

Reply via email to