大数据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博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
相关推荐
Georgeviewer23 分钟前
商业落地评测|实体门店GEO优化性价比与服务体系深度复盘
大数据·人工智能
腻害兔2 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
GIR1232 小时前
官方出品 | 多通道土壤呼吸测量系统市场现状与十五五规划深度报告:行业分析+趋势预测全收录
大数据·人工智能·机器学习
南讯股份Nascent4 小时前
洽洽全域会员项目启动会圆满召开
大数据·人工智能
大郭鹏宇4 小时前
基于 LangGraph 构建智能分诊系统(一):项目概述与环境搭建
大数据·人工智能·microsoft·langchain
Database_Cool_5 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
天天爱吃肉82187 小时前
【电源拆解:跟着问答逐一认识开关适配器PCB元器件】
大数据·人工智能·python·功能测试·嵌入式硬件·汽车
Elastic 中国社区官方博客8 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
abcy0712138 小时前
storm核心实时机制
大数据·storm
灵机一物8 小时前
合伙制律所分红和提成律师个税怎么合规优化?
大数据·人工智能