我想实现一个使用以下模式读取镶木地板文件的 mapreduce 作业:
{
optional int96 dropoff_datetime;
optional float dropoff_latitude;
optional float dropoff_longitude;
optional int32 dropoff_taxizone_id;
optional float ehail_fee;
optional float extra;
optional float fare_amount;
optional float improvement_surcharge;
optional float mta_tax;
optional int32 passenger_count;
optional binary payment_type (UTF8);
optional int96 pickup_datetime;
optional float pickup_latitude;
optional float pickup_longitude;
optional int32 pickup_taxizone_id;
optional int32 rate_code_id;
optional binary store_and_fwd_flag (UTF8);
optional float tip_amount;
optional float tolls_amount;
optional float total_amount;
optional float trip_distance;
optional binary trip_type (UTF8);
optional binary vendor_id (UTF8);
required int64 trip_id;
}
这项工作的主要目的是计算每天每小时 (0->23) 的出租车在行程中的平均速度。
我的Mapper类计算每个接送小时的速度,因此它提供以下几个(hour, speed)。
Reducer类通常应该计算每小时的平均速度。
但是我想知道我是否可以使用组合器类来促进数据处理,因为我了解到组合器类只能用于交换和关联操作,而这不是平均情况吗?
任何帮助将不胜感激。
谢谢 :)