大数据Spark(七十九):Action行动算子countByKey和countByValue使用案例

文章目录

Action行动算子countByKey和countByValue使用案例

一、countByKey使用案例

二、countByValue使用案例


Action行动算子countByKey和countByValue使用案例

一、countByKey使用案例

作用到K,V格式的RDD上,根据Key计数相同Key出现的次数,结果会回收到Driver端。

Java代码:

java 复制代码
SparkConf conf = new SparkConf().setMaster("local").setAppName("CountByKeyTest");
JavaSparkContext sc = new JavaSparkContext(conf);

JavaPairRDD<String, Integer> rdd = sc.parallelizePairs(Arrays.asList(
        new Tuple2<>("a", 1),
        new Tuple2<>("b", 2),
        new Tuple2<>("c", 3),
        new Tuple2<>("a", 4),
        new Tuple2<>("b", 5),
        new Tuple2<>("a", 6),
        new Tuple2<>("c", 7)

));

//countByKey:统计每种key的个数
Map<String, Long> map = rdd.countByKey();
map.forEach((k,v)-> System.out.println(k+":"+v));

sc.stop();

Scala代码:

Scala 复制代码
val conf: SparkConf = new SparkConf().setMaster("local").setAppName("CountByKeyTest")
val sc = new SparkContext(conf)
val rdd: RDD[(String, Int)] = sc.parallelize(List(
  ("a", 1),
  ("b", 2),
  ("c", 3),
  ("a", 4),
  ("b", 5),
  ("a", 6),
  ("c", 7)
))

val result: collection.Map[String, Long] = rdd.countByKey()
result.foreach(println)

sc.stop()

二、countByValue使用案例

根据RDD数据集每个元素相同的内容来计数,返回相同元素对应的条数,作用到KV或者非KV格式RDD上都可以,结果也会回收到Driver端。

Java代码:

java 复制代码
SparkConf conf = new SparkConf().setMaster("local").setAppName("CountByValueTest");
JavaSparkContext sc = new JavaSparkContext(conf);

JavaRDD<String> rdd = sc.parallelize(Arrays.asList("a", "b", "c", "a", "b", "c", "a", "b", "c"));
//countByValue:统计每种value的个数
Map<String, Long> map = rdd.countByValue();
map.forEach((k,v)-> System.out.println(k+":"+v));
sc.stop();

Scala代码:

Scala 复制代码
val conf: SparkConf = new SparkConf().setMaster("local").setAppName("CountByValueTest")
val sc = new SparkContext(conf)
val rdd: RDD[String] = sc.parallelize(List("a", "b", "c", "a", "b", "a", "c"))

val map: collection.Map[String, Long] = rdd.countByValue()
map.foreach(println)
sc.stop()

  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
相关推荐
Tongzhi202624 分钟前
通芝科技考勤软件三大发展趋势:AI大模型、无感识别与数据底座
大数据·科技·算法·爬山算法
智购科技自动售卖机厂家28 分钟前
2026自动售货机库存热力图分析:从设备分布到补货优先级的数据可视化实践~YH
大数据·python·信息可视化
SelectDB技术团队40 分钟前
Apache Doris 5.0 年度版本前瞻(一):构建统一的多模湖仓实时分析平台
大数据·doris·数据湖·湖仓一体·lakehouse·湖仓分析·多模分析
eBest数字化转型方案1 小时前
Route Optimization for FMCG:多目标排线算法的工程实现
大数据·人工智能·算法
Han.miracle1 小时前
Elasticsearch深度分页问题完整解析
大数据·elasticsearch·搜索引擎
小柯南敲键盘1 小时前
跨境电商批量图片翻译与视频字幕翻译,就用跨马AI工具
大数据·人工智能·python·音视频
GlobalInfo1 小时前
正文回答“是什么”,附录回答“为什么是这样”
大数据·人工智能
数字孪生视频孪生1 小时前
空间智能技术|跨镜轨迹全域可溯,无感定位无扰赋能落地
大数据·运维·人工智能·重构·架构
Raas1002 小时前
AI网关和LLM网关区别?MAI Gateway(魔芋企业级AI网关)企业级方案对比指南
大数据·人工智能·gateway·mai gateway·企业级产品
imbackneverdie2 小时前
国内有哪些比较全面的生物医学相关数据库?
大数据·数据库·人工智能·ai·信息可视化·aigc·科研