[Solved-2 Solutions] Finding mean using pig or hadoop ?
What is mean ?
- The mean is the average of the numbers: a calculated "central" value of a set of numbers.
Problem :
Data is saved in directory data/data1.txt, data2.txt and so on
What we want to do is for each merchant, find the average amount. So basically, in the end we want to save the output in file. something like
How to calculate the standard deviation ?
Solution 1:
Apache PIG is well adapted form such tasks.
Example
- Pay special attention to the data type of the amount column as it will influence which implementation of the SUM function PIG is going to invoke.
- PIG can also do something that SQL can not, it can put the mean against each input row without using any inner joins. That is useful if you are calculating z-scores using standard deviation.
- FLATTEN(inpt) have an access to the original amount that had contributed to the groups average, sum and count.
The below code helps to Calculate variance and standard deviation
Solution 2:
The map step:
The reduce step:
- As in the reduce step, we will be provided with a stream of record having the same key and we can do almost everything we can including the average, variance.