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

Spark(Scala)中如何筛选出重复指定次数的元素?

Spark(Scala)筛选重复指定次数的元素

要找出RDD中重复指定次数的元素,核心逻辑是先统计元素出现次数,再筛选出次数匹配目标值的元素,以下是具体实现步骤:

1. 创建示例RDD

先初始化你提供的测试RDD:

val rdd = sc.parallelize(Seq("text1", "text2", "text3", "text4", "text2", "text4", "text1", "text1"))

2. 统计元素出现次数

通过map标记计数、reduceByKey聚合统计每个元素的出现次数:

val elementCountRdd = rdd.map(element => (element, 1)).reduceByKey(_ + _)

3. 筛选目标次数的元素

指定目标重复次数targetTime,过滤出计数等于该值的元素并提取结果:

val targetTime = 2
val resultRdd = elementCountRdd.filter(_._2 == targetTime).map(_._1)

4. 查看结果

执行collect获取结果并打印:

resultRdd.collect().foreach(println)

输出结果为:

text2
text4

关键步骤说明

  • map((element, 1)):给每个元素绑定初始计数1
  • reduceByKey(_ + _):按元素(key)分组,累加所有对应计数得到总出现次数
  • filter(_._2 == targetTime):保留计数等于目标次数的键值对
  • map(_._1):从键值对中提取出对应的元素本身

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:35:38