我有将使用aws emr在猪中运行的数据。这些列称为型号,年份,单位已售出,总计客户。
chevy 1900 1000 49
chevy 1901 73 92
chevy 1902 45 65
chevy 1903 300 75
ford 1900 35 12
ford 1901 777 32
ford 1902 932 484
ford 1903 33 15
我想做的是计算每种车型的平均值。将通过将units_sold的总和除以total_customers的总和来计算平均值。 所以所需的结果看起来像
chevy (1000+73+45+300) / (49+92+65+75) = 5.04
ford (35+777+932+33) / (12+32+484+15) = 3.27
我的脚本中有
A = *Step to load data*;
B = GROUP A by year;
C = results = FOREACH B GENERATE SUM(units_sold)/SUM(total_customers);
dump C;
这将返回错误的结果。如何获得类似结果的结果
chevy 5.04
ford 3.27
答案 0 :(得分:1)
看起来您需要按汽车类型而不是年份分组。另外,如果您不希望舍入结果,则如果units_sold
和total_customers
是整数,则可能需要强制转换为浮点数。试试:
B = GROUP A by model;
C = FOREACH B GENERATE (float)SUM(units_sold)/(float)SUM(total_customers);