You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark Scala 如何修改代码实现RDD按唯一key对value求和?

问题原因
  • 现有代码直接将整行文本作为分组键,固定值1作为累加值,实际是统计完全重复的行的出现次数,不符合「按商品名分组、累加销售额」的需求
修改后代码
val salesRDD = sc.textFile("/user/bigdata/sales.txt")
// 拆分每行,提取商品名作为key,销售额转整数作为value
val pairs = salesRDD.map(s => {
  val arr = s.split(" ")
  (arr(0), arr(1).toInt)
})
// 按商品分组,对销售额求和
val totalSales = pairs.reduceByKey(_ + _)
// 按预期格式输出结果
totalSales.collect().foreach{case (good, amount) => println(s"$good $amount")}
代码说明
  • 先用split(" ")拆分每行文本,得到商品名和对应销售额两个部分
  • 将销售额转为Int类型后作为键值对的value,商品名作为key
  • reduceByKey(_ + _)对同一个商品对应的所有销售额执行累加操作
  • 输出时通过模式匹配调整格式,和预期的输出结构完全匹配

内容的提问来源于stack exchange,提问作者Sammy Mak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:06:04