Scala 统计不同省份商品点击总数并排序
// 定义原始数据
val data = Map((("吉林", "玉米"), 2),
(("吉林", "袜子"), 10),
(("河南", "山药"), 18),
(("河南", "鞋"), 3),
(("河南", "衣服"), 9),
(("河北", "箱包"), 11),
(("河北", "鸭梨"), 5),
(("吉林", "木耳"), 7))
// 将原始数据转换成('省份', '商品', 点击数)的格式
val newData = data.map{case ((province, product), num) => (province, product, num)}
// 按省份进行分组
val groupedData = newData.groupBy(_._1)
// 统计每个省份所有商品点击数量的总数
val result = groupedData.map{case (province, dataList) => (province, dataList.map(_._3).sum)}
// 按升序排序
val sortedResult = result.toList.sortBy(_._2)
// 输出结果
println(result)
println(sortedResult)
代码解释:
- 定义原始数据: 使用
Map数据结构存储原始数据,每个元素为一个元组,包含省份、商品和点击数。 - 数据转换: 使用
map函数将原始数据的格式转换为('省份', '商品', 点击数)的元组。 - 分组: 使用
groupBy函数按省份对数据进行分组。 - 统计总数: 使用
map函数遍历分组后的数据,并使用sum函数计算每个省份所有商品点击数的总和。 - 排序: 使用
sortBy函数对统计结果按升序排序。 - 输出结果: 使用
println函数输出排序后的统计结果。
注意: 代码中使用单引号 ' 来包裹字符串,以符合 JSON 格式要求。
原文地址: https://www.cveoy.top/t/topic/kvUc 著作权归作者所有。请勿转载和采集!