// 定义原始数据
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)

代码解释:

  1. 定义原始数据: 使用 Map 数据结构存储原始数据,每个元素为一个元组,包含省份、商品和点击数。
  2. 数据转换: 使用 map 函数将原始数据的格式转换为 ('省份', '商品', 点击数) 的元组。
  3. 分组: 使用 groupBy 函数按省份对数据进行分组。
  4. 统计总数: 使用 map 函数遍历分组后的数据,并使用 sum 函数计算每个省份所有商品点击数的总和。
  5. 排序: 使用 sortBy 函数对统计结果按升序排序。
  6. 输出结果: 使用 println 函数输出排序后的统计结果。

注意: 代码中使用单引号 ' 来包裹字符串,以符合 JSON 格式要求。

Scala 统计不同省份商品点击总数并排序

原文地址: https://www.cveoy.top/t/topic/kvUc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录