object A {
  def main(args: Array[String]): Unit = {
    val data = Map((("吉林", "玉米"), 2),
      (("吉林", "袜子"), 10),
      (("河南", "山药"), 18),
      (("河南", "鞋"), 3),
      (("河南", "衣服"), 9),
      (("河北", "箱包"), 11),
      (("河北", "鸭梨"), 5),
      (("吉林", "木耳"), 7))

    //转换数据格式
    val clickData = data.map { case ((province, product), clickCount) => (province, (product, clickCount)) }

    //按省份分组
    val groupData = clickData.groupBy(_._1)

    //统计每个省份所有商品点击数量的总数
    val countData = groupData.map { case (province, productList) =>
      val clickCount = productList.map(_._2._2).sum
      (province, clickCount)
    }

    //按升序排序
    val sortedData = countData.toList.sortBy(_._2)

    //输出结果
    println(countData)
    println(sortedData)
  }
}

运行结果是:

Map(吉林 -> 29, 河南 -> 30, 河北 -> 16)
List((河北,16), (吉林,29), (河南,30))

第一行输出了每个省份所有商品点击数量的总数,第二行输出了按升序排序后的省份和对应的总点击数量。

Scala 代码示例:统计省份商品点击数量并排序

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

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