【SparkAPI JAVA版】JavaPairRDD——countByValue、countByValueApprox(十三)

countByKey、countByValue原理-源码(spark3.0) CountByKey 因为代码中调用了collect,所以是action算子 将(key,value)转换成了(key,1) 然后调用了reduceByKey->collect->toMap PairRDDFunctions类\ /** * TODO:统计每个不同的key的个数 * Count the number of elements for each key, collecting the results to a local ... 阅读详情
JavaPairRDD的countByValue方法讲解
官方文档
/**
   * Return the count of each unique value in this RDD as a map of (value, count) pairs. The final
   * combine step happens locally on the master, equivalent to running a single reduce task.
   */
说明

返回RDD中每个值的计数,作为(value,count)对的映射。

返回的是map

函数原型
// java
public static java.util.Map<T,Long> countByValue()
// scala
def countByValue(): Map[(K, V), Long]
示例
public class CountByValue {
    public static void main(String[] args) {
        System.setProperty("hadoop.home.dir", "E:\\hadoop-2.7.1");
        SparkConf sparkConf = new SparkConf().setMaster("local").setAppName("Spark_DEMO");
        JavaSparkContext sc = new JavaSparkContext(sparkConf);

        JavaPairRDD<String, String> javaPairRDD1 = sc.parallelizePairs(Lists.newArrayList(
                new Tuple2<String, String>("cat", "11"), new Tuple2<String, String>("dog", "22"),
                new Tuple2<String, String>("cat", "11"), new Tuple2<String, String>("pig", "44"),
                new Tuple2<String, String>("duck", "55"), new Tuple2<String, String>("cat", "66")), 3);


        Map<Tuple2<String, String>, Long> value = javaPairRDD1.countByValue();
        for (Map.Entry<Tuple2<String, String>, Long> entry : value.entrySet()){
            System.out.println(entry.getKey()+"->"+entry.getValue());
        }

    }
}
结果
19/03/20 17:15:31 INFO DAGScheduler: Job 0 finished: countByValue at CountByValue.java:23, took 1.093040 s
19/03/20 17:15:31 INFO SparkContext: Invoking stop() from shutdown hook
(duck,55)->1
(dog,22)->1
(pig,44)->1
(cat,66)->1
(cat,11)->2
19/03/20 17:15:31 INFO SparkUI: Stopped Spark web UI at http://10.124.209.6:4040
JavaPairRDD的countByValueApprox方法讲解
官方文档
/**
   * Approximate version of countByValue().
   *
   * The confidence is the probability that the error bounds of the result will
   * contain the true value. That is, if countApprox were called repeatedly
   * with confidence 0.9, we would expect 90% of the results to contain the
   * true count. The confidence must be in the range [0,1] or an exception will
   * be thrown.
   *
   * @param timeout maximum time to wait for the job, in milliseconds
   * @param confidence the desired statistical confidence in the result
   * @return a potentially incomplete result, with error bounds
   */
说明

CountByValue()的近似版本。

置信度必须在[0,1]范围内,否则异常将被扔掉。

*@参数超时等待作业的最长时间(毫秒)
*@参数置信度结果中所需的统计置信度
*@返回一个可能不完整的结果,带有错误界限

函数原型
// java
public static PartialResult<java.util.Map<T,BoundedDouble>> countByValueApprox(long timeout)
public static PartialResult<java.util.Map<T,BoundedDouble>> countByValueApprox(long timeout,
                                                                               double confidence)
// scala
def countByValueApprox(timeout: Long): PartialResult[Map[(K, V), BoundedDouble]]
def countByValueApprox(timeout: Long, confidence: Double): PartialResult[Map[(K, V), BoundedDouble]]
Spark中countByValue算子详解介绍 在 Spark 中,`countByValue` 是一种用于对 RDD 进行操作的行动算子(Action Operator)。它用于统计 RDD 中各个元素的出现次数,并返回一个表示每个元素及其出现次数的映射(Map)。 阅读详情

相关推荐

Halcon实战:5分钟搞定工业零件中的圆孔检测(附完整代码)

本文详细解析了如何利用Halcon的hough_circle算法在5分钟内高效完成工业零件中的圆孔检测。通过优化图像采集、智能预处理和参数化边缘检测,解决了金属反光、油污干扰等工业场景常见问题,并提供了完整的代码示例和实战案例,显著提升检测精度和效率。

weixin_29061997的博客 239

【RDD Action】countByKey、countByValue、filterByRange、flatMapValues

一、Rdd行动算子 1、【countByKey】统计存储在rdd中元组的key的个数,key是相同的就会进行计数+1。通过这个key 会生成一个Map Map中的key是原有中的key,value是原有key的个数; 2、【countByValue】统计在Rdd中存储元素的个数。会将rdd中每一个元组看作为一个value,若这个元组中元素是相同的,此时就会将生成Map中的value+1; 3、【filterByRange】对rdd中的元素过滤,并返回指定内容的数据。该函数作用于键值对RDD,对RDD中

hyj 588

BarTender破解版风险与低成本正版替代方案全解析

在工业自动化和企业信息化领域,标签打印与条形码技术是连接物理世界与数字系统的关键环节。其核心原理是通过软件驱动打印设备,将可变数据(如序列号、生产日期)与固定模板结合,生成可追溯的标识载体。这项技术的价值在于实现生产流程可视化、供应链管理精细化与质量控制自动化,广泛应用于仓储物流、制造执行、零售门店等场景。然而,软件授权合规性常成为企业成本控制的痛点,尤其面对BarTender这类行业标准工具时,部分用户可能寻求破解方案。但破解版软件通常采用内存补丁、伪造许可证等技术手段绕过验证,不仅存在法律风险,更会引发

weixin_32736961的博客 735

spark 常见算子

1.行动算子 collectAsMap:相当于map操作,去掉键相同的键值对 //如果RDD中同一个Key中存在多个Value,那么后面的Value将会把前面的Value覆盖, //最终得到的结果就是Key唯一,而且对应一个Value。 count:计数,返回rdd中的元素数量 countByKey:用来统计RDD[k,v]中每个k的数量 countByValue:统计出集合中每个元素的个数 first:返回RDD中的第一个元素,不排序。 reduce:对集合中的数依次进行相关计算。

weixin_47869733的博客 2266

格拉姆角场(GAF)实战:用Python实现时间序列图像化处理

本文深入解析了格拉姆角场(GAF)技术,这是一种将一维时间序列转化为二维图像特征的方法,以便利用卷积神经网络(CNN)等图像模型进行深度分析。文章通过Python实战代码,详细演示了GASF和GADF两种核心转换的实现过程,并探讨了其在时序数据分类任务中的应用,为故障预警、金融模式识别等场景提供了强大的图像驱动分析视角。

weixin_29079671的博客 273

Wider Face+YOLOV7人脸检测

使用Wider Face数据集训练YOLOV7

chen_znn的博客 8407

Spark API 之 countByValue

countByValue():根据rdd中的元素值相同的个数。返回的类型为Map[K,V], K : 元素的值,V :元素对应的的个数demo1:val a = sc.parallelize(List("a","b","c","d","a","a","a","c","c"),2);a.countByValue(); 输出的结果为

qq_29499107的博客 2426

手撕代码系列:Conv2D

在实际的神经网络中,每个卷积核都会对应一个偏置值。这意味着如果网络有多个卷积核,每个卷积核的输出都可以加上对应的偏置。

qq_55794606的博客 910

RDD转换算子countByKey 和 countByValue详解

【代码】RDD转换算子countByKey 和 countByValue详解。

yqqの博客 374

JMeter压力测试全攻略:从入门到精通

本文系统讲解JMeter压力测试的完整流程与结果评估方法。开篇介绍压力测试的核心概念及JMeter工具特性,随后从环境搭建入手,详细说明JDK配置、JMeter安装及中文界面设置。主体部分围绕测试流程展开,涵盖测试计划创建、线程组参数调优、HTTP请求配置、断言与监听器添加等实操步骤;结果评估环节深入解析聚合报告指标、结果树分析及性能瓶颈定位方法,并通过电商接口测试案例演示全流程应用。文末总结关键要点,为读者提供从基础操作到分布式压测、性能调优的进阶学习方向,助力掌握JMeter在系统性能评估中的核心应用。

邓邓子的博客 2416

Claude Code 任务编排 头脑风暴与 疯狂拷问:Superpowers vs Grill-me 硬核对比与工程落地

Superpowers和Grill-me是AI编程中的互补工具:Superpowers提供工程化开发流程(从需求梳理到代码审查),确保规范执行;Grill-me通过持续追问帮助厘清需求,避免方向偏差。两者结合形成"构思-拷问-执行"工作流,前者负责方案生成与落地,后者专注需求审查。根据场景选择:个人项目可用Grill-me快速澄清需求,企业项目推荐Superpowers全流程,复杂开发则建议组合使用。它们分别解决"如何落地"和"是否对齐"的问题,共

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 325

Spark函数之count、countByKey和countByValue

count 统计RDD中元素的个数。 1 2 3 val c = sc.parallelize(List("Gnu", "Cat", "Rat", "Dog"), 2) c.count res2: Long = 4 countByKey 与count类似,但是是以key为单位进行统计。 注意:此函数返回的是一个map,不是int。 ...

影密卫 1万+

8.DJI-PSDK:一站式项目功能开发总结(空中气象站项目/激光甲烷检测项目)

本文将以一篇文章的幅度快速完成: 项目一:空中气象站项目; 项目二:激光甲烷项目; 项目所使用的PSDK来源于第0章节末尾的百度网盘;解压:Payload-SDK-3.8.zip代码所在目录:双击打开: 修改打印串口和相关波特率,我们修改如下: 进行相关编译选项配置如下: :

哒宰的博客 294

SparkRDD之countByKey和countByValue

countByKey和countByValue都是对RDD中的元素进行统计,前者必须是键值对RDD,根据键统计。后者直接统计值。 package com.cb.spark.sparkrdd; import java.util.Arrays; import java.util.function.BiConsumer; import org.apache.spark.SparkConf; im...

大雄没有叮当猫的博客 1620

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【SparkAPI JAVA版】JavaPairRDD——collectAsMap(八)

JavaPairRDD的collectAsMap方法讲解 官方文档说明 /** * Return the key-value pairs in this RDD to the master as a Map. * * @note this method should only be used if the resulting data is expected to be smal...

菜鸟sdut的博客 950

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java RDD键值对

SparkConf conf = new SparkConf(); JavaSparkContext jsc = new JavaSparkContext("local", "keyValueRDDTest", conf); List, Integer>> list = Arrays.asList( new Tuple2, Integer>(1, 2), new

cc278463952的博客 560

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Spark RDD算子(七)countByKey,countByValue,collectAsMap

countByKey 统计pairRDD(键值对形式的rdd)key出现的次数,返回的结果是一个map,key为原key,value为key出现的次数 scala版本 val rdd = sc.parallelize(List(("a",1),("a",2),("b",1),("c",3),("a",5))) rdd.countByKey java版本 JavaRDD<String> rdd1 = sc.parallelize(Arrays.asList("a", "a", "b", "b"

jiandanbuguo的博客 1162

SparkRDD——行动算子

一、行动算子定义 spark的算子可以分为trans action算子 以及 action算子 ,即变换/转换 算子。如果执行一个RDD算子并不触发作业的提交,仅仅只是记录作业中间处理过程,那么这就是trans action算子 ,相反如果执行这个 RDD 时会触发 Spark Context 提交 Job 作业,那么它就是 action算子及行动算子。 总结来说就是在Spark中,转换算子并不会马上进行运算的,即所谓的“惰性运算”,而是在遇到行动算子时才会执行相应的语句的,触发Spark的任务调度并开始进

tyh1579152915的博客 3932

Spark编程之基本的RDD算子count, countApproxDistinct, countByValue等

Spark编程之基本的RDD算子count, countApproxDistinct, countByValue等 1 count count 返回的是在一个RDD里面存储的元素的个数def count(): Longval c = sc.parallelize(List("Gnu", "Cat", "Rat", "Dog"), 2) c.count res2: Long = 4 2 countAp

stevekangpei的博客 6725

countByValue

[1,2,3,3]的RDD rdd.foreach(println)---------------------1 2 3 3 转载于:https://www.cnblogs.com/ggzhangxiaochao/p/9398363.html

weixin_30505043的博客 179

【SparkAPI JAVA版】JavaPairRDD——context、count (十)

JavaPairRDD的context方法讲解 函数原型 // java public static SparkContext context() // scala def context: SparkContext 说明 可以看得出来,这是一个静态方法,返回一个SparkContext。关于SparkContext是很重要的,想了解更多的可以看这篇文章 spark[源码]-sparkConte...

菜鸟sdut的博客 837

spark rdd countByValue

package com.latrobe.spark import org.apache.spark.{SparkContext, SparkConf} /** * Created by spark on 15-1-18. * 统计出集合中每个元素的个数 */ object CountByValue { def main(args: Array[String]) { val c

lovemelovemycode的专栏 5183

【SparkAPI JAVA版】JavaPairRDD——aggregate(一)

JavaPairRDD的aggregate方法讲解 官方文档说明 /** * Aggregate the elements of each partition, and then the results for all the partitions, using * given combine functions and a neutral &amp;amp;quot;zero value&amp;amp;quot;. This fu...

菜鸟sdut的博客 1075

java rdd_JAVA RDD 介绍

RDD,全称Resilient Distributed Datasets(弹性分布式数据集),是Spark最为核心的概念,是Spark对数据的抽象。RDD是分布式的元素集合,每个RDD只支持读操作,且每个RDD都被分为多个分区存储到集群的不同节点上。除此之外,RDD还允许用户显示的指定数据存储到内存和磁盘中,掌握了RDD编程是SPARK开发的第一步。1:创建操作(creation operatio...

weixin_35948624的博客 2028

spark countByKey用法详解

统计每个key对应的value个数,需要注意的是rdd类型是pairRdd,即键值对的形式的rdd,详细代码如下: private static void myCountByKey(){         SparkConf conf=new SparkConf()         .setMaster("local")         .setAppName("myCountByKey")

跟我一起去征服 9025

RDD算子(九)基本的Action操作first、take、collec、count、countByValue、reduce、aggregate、fold、to

first 返回第一个元素 scala版本: val conf = new SparkConf().setAppName("First").setMaster("local[1]") val sc = new SparkContext(conf) val rdd = sc.parallelize(List(1, 2, 3, 3)) println(rdd.first()) java版本: SparkConf conf = new SparkConf().setMaster("local[1]").set

qq_40333693的博客 675
上一篇: 【SparkAPI JAVA版】JavaPairRDD——countByKey、countByKeyApprox(十二)
下一篇: 【SparkAPI JAVA版】JavaPairRDD——distinct(十四)
sdut菜鸟
博客等级 码龄11年 231粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值