-1
喜來計算平均,我想寫的僞代碼的MapReduce算法來解決以下問題: 給定的輸入記錄格式如下:
地址,郵編,城市,house_value, 請計算平均房屋價值爲每個郵政編碼。 我真的很感激,如果你能幫助我這個..僞代碼使用MapReduce的
喜來計算平均,我想寫的僞代碼的MapReduce算法來解決以下問題: 給定的輸入記錄格式如下:
地址,郵編,城市,house_value, 請計算平均房屋價值爲每個郵政編碼。 我真的很感激,如果你能幫助我這個..僞代碼使用MapReduce的
最簡單的辦法是使用Apache的豬,這裏是找到一個平均的一個例子:
inpt = load 'data.txt' as (address:chararray, zip:chararray, city:chararray, house_value:long);
grp = group inpt by zip;
average = foreach grp generate FLATTEN(group) as (zip), AVG(inpt.house_value) as average_price;
dump average;
僞的Map Reduce代碼,你會需要一臺MAPPER,COMBINER和一臺REDUCER
MAPPER(record):
zip_code_key = record['zip'];
value = {1, record['house_value']};
emit(zip_code_key, value);
COMBINER(zip_code_key, value_list):
record_num = 0;
value_sum = 0;
foreach (value : value_list) {
record_num += value[0];
value_sum += value[1];
}
value_out = {record_num, value_sum};
emit(zip_code_key, value_out);
REDUCER(zip_code_key, value_list):
record_num = 0;
value_sum = 0;
foreach (value : value_list) {
record_num += value[0];
value_sum += value[1];
}
avg = value_sum/record_num;
emit(zip_code_key, avg);
歡迎來到SO!你試過什麼了?請分享一些[僞]代碼 – Mureinik