【发布时间】:2017-12-03 15:42:33
【问题描述】:
我是流媒体的初学者,map、reduce 和 filter。
我从我的 Cassandra 表中获取行列表,其中包含三个字段 vehicleType、noOfVehicles 和 taxPerParticularVehicleType。
我想准备一组这 3 个三元组,以便添加任何特定类型的车辆数量,而三元组还应包含特定车辆类型的税收算术平均值。
我正在应用我的映射,例如:
session.execute(statement).all().stream()
.map(row -> new ImmutablePair<>(row.getString("vehicleType"), new ImmutablePair<>(row.getInt("noOfVehicles"), row.getFloat("tollTaxOfParticularType") * row.getInt("noOfVehicles"))))
.reduce(x->{
});
我无法应用 reduce 以便将其添加到以下集合中:
Set<Triple<String,Integer,Double>> set = new HashSet<>();
我正在举例说明我想通过 Map-Reduce 实现的目标:
我正在映射来自我的表的三个字段(vehicleType、noOfVehicle、taxOfParticularVehicle),例如:
(vehicleType,(noOfVehicle,noOfVehicle*taxOfParticularVehicle))
假设映射给了我一个这样的数组:
[("A",(12,48)),("A",(10,30)),("B",(3,30)),("B",(4,70))]
最后我想把它减少到以下集合:
[("A",22,39),("B",7,50)]
这样 noOfVehicles 得到汇总,而 tax 是该组中车辆税的算术平均值。
【问题讨论】:
-
是的,你是对的
标签: java mapreduce set tuples java-stream