2016-12-02 75 views
0

我有一個變量car_age在整個CSV文件中保存汽車的年齡的不同值。我如何取所有值的平均值?我需要用car_age值的平均值(或平均值)替換異常值。 這是我目前正在做的事情。如何查找Pig中單個列的平均值,總計值和計數值?

training_data= LOAD '/user/All_State_Insurance_Prediction_Dataset/sampled_training_dataset/sampled_training_set'; 
A1 = foreach training_data generate car_age; 
B1= Distinct A1; 

B1擁有不同的汽車時代價值。我怎樣才能找到B1中的數值的平均值,和值和數量?我沒有使用Group By,因爲我需要在單個值列表上完成這些操作。

+0

你怎麼能找到平均值,不進行分組計數或總和做,因爲所有這些功能都是集合函數。你必須在apache pig中給出一個分組列。 –

+0

但是如果我想要所有值的平均值而不考慮列,就像上面的情況一樣?如果不可能,查詢會是什麼樣子? – Aishwarya

回答

0

試試這個做平均

training_data= LOAD '/user/All_State_Insurance_Prediction_Dataset/sampled_training_dataset/sampled_training_set' USING PigStorage(); 

A1 = foreach training_data generate car_age; 

B1= Distinct A1; 

B1_grouped = GROUP B1 all; 

B1_avg = FOREACH B1_grouped GENERATE AVG(B1); 

同樣可以爲SUM等聚合函數

+0

它工作完美。非常感謝! – Aishwarya