Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pig - ERROR 1045: AVG as multiple or none of them fit. Please use an explicit cast

I have a comma seperated .txt file, I want to DUMP the AVG age of all Males.

records = LOAD 'file:/home/gautamshaw/Documents/PigDemo_CommaSep.txt' USING PigStorage(',') AS (firstname:chararray,lastname:chararray,age:int,sex:chararray);
filter_by_male = FILTER records BY sex == 'M';
grouped = GROUP filter_by_male ALL;
average_male_age = FOREACH grouped GENERATE AVG(records.age);

I am getting an error in the FOREACH line:

ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1045: 
<line 6, column 44> Could not infer the matching function for org.apache.pig.builtin.AVG as multiple or none of them fit. Please use an explicit cast.

Please advice.

like image 794
user182944 Avatar asked Jan 30 '15 01:01

user182944


1 Answers

You should not project records relation it should be filter_by_male relation.

Can you change your script like this?

average_male_age = FOREACH grouped GENERATE AVG(filter_by_male.age);
like image 54
Sivasakthi Jayaraman Avatar answered Oct 25 '22 19:10

Sivasakthi Jayaraman