Scala 统计不同省份商品点击总数并排序
// 原始数据
val data = Map((("吉林", "玉米"), 2),
(("吉林", "袜子"), 10),
(("河南", "山药"), 18),
(("河南", "鞋"), 3),
(("河南", "衣服"), 9),
(("河北", "箱包"), 11),
(("河北", "鸭梨"), 5),
(("吉林", "木耳"), 7))
// 转换数据格式
val mappedData = data.map { case ((province, item), count) => (province, item, count) }
// 按省份进行分组
val groupedData = mappedData.groupBy(_._1)
// 统计每个省份所有商品点击数量的总数
val reducedData = groupedData.map { case (province, items) => (province, items.map(_._3).sum) }
// 按升序排序
val sortedData = reducedData.toList.sortBy(_._2)
// 输出结果
println(reducedData)
println(sortedData)
注释:
- 原始数据: 定义一个名为
data的 Map 集合,存储商品点击数据,每个元素包含省份、商品名称和点击次数。 - 转换数据格式: 使用
map操作将原始数据中的元组格式改为三元组格式,方便后续处理。 - 按省份进行分组: 使用
groupBy操作将数据按省份进行分组,将每个省份的数据放在一个列表中。 - 统计每个省份所有商品点击数量的总数: 对每个省份的数据列表进行
map操作,将每个商品点击数量取出并求和。 - 按升序排序: 使用
toList将Map转换为List,然后使用sortBy按商品点击数量升序排序。
输出结果:
Map(河南 -> 30, 吉林 -> 19, 河北 -> 16)
List((河北,16), (吉林,19), (河南,30))
原文地址: https://www.cveoy.top/t/topic/kvTP 著作权归作者所有。请勿转载和采集!