一,累加器特征

1,PySpark累加器是一个共享变量,与RDD和DataFrame一起使用,以执行与Map reduce计数器类似的求和和和计数器操作。

2,只有分布在各个节点上的task任务才能更新累加器的数值,并且只有driver 端可以读取数值。

二,累加器的创建和使用

sparkContext.accumulator() 可以定义累加器

add() function 增加或者更新累加器的值

value 属性(累加器中的)可以读取到值。

代码:

import pyspark
from pyspark.sql import SparkSession
spark=SparkSession.builder.appName("accumulator").getOrCreate() accum=spark.sparkContext.accumulator(0)
rdd=spark.sparkContext.parallelize([1,2,3,4,5])
rdd.foreach(lambda x:accum.add(x)) #统计rdd内的数值和
print(accum.value) # driver program 中获取值 accuSum=spark.sparkContext.accumulator(0)
def countFun(x): # 功能同上,使用函数方法
global accuSum
accuSum+=x
rdd.foreach(countFun)
print(accuSum.value) accumCount=spark.sparkContext.accumulator(0)
rdd2=spark.sparkContext.parallelize([1,2,3,4,5])
rdd2.foreach(lambda x:accumCount.add(1)) #作为计数器功能
print(accumCount.value)

使用pyspark 建立spark 的累加器的更多相关文章

  1. (2)pyspark建立RDD以及读取文件成dataframe

    别人的相关代码文件:https://github.com/bryanyang0528/hellobi/tree/master/pyspark 1.启动spark (1)SparkSession 是 S ...

  2. Pyspark 使用 Spark Udf 的一些经验

    起初开始写一些 udf 的时候感觉有一些奇怪,在 spark 的计算中,一般通过转换(Transformation) 在不触发计算(Action) 的情况下就行一些预处理.udf 就是这样一个好用的东 ...

  3. Anaconda中配置Pyspark的Spark开发环境

    1.windows下载并安装Anaconda集成环境 URL:https://www.continuum.io/downloads 2.在控制台中测试ipython是否启动正常 3.安装JDK 3.1 ...

  4. brdd 惰性执行 mapreduce 提取指定类型值 WebUi 作业信息 全局临时视图 pyspark scala spark 安装

    [rdd 惰性执行] 为了提高计算效率 spark 采用了哪些机制 1-rdd 基于分布式内存数据集进行运算 2-lazy evaluation  :惰性执行,即rdd的变换操作并不是在运行该代码时立 ...

  5. spark accumulator累加器

    java /** * accumulator可以让多个task共同操作一份变量,主要进行多个节点对一个变量进行共享性的操作,accumulator只提供了累加的功能 * 只有driver可以获取acc ...

  6. Spark调研笔记第4篇 - PySpark Internals

    事实上.有两个名为PySpark的概念.一个是指Sparkclient内置的pyspark脚本.而还有一个是指Spark Python API中的名为pyspark的package. 本文仅仅对第1个 ...

  7. pycharm编写spark程序,导入pyspark包

    一种方法: File --> Default Setting --> 选中Project Interpreter中的一个python版本-->点击右边锯齿形图标(设置)-->选 ...

  8. spark累加器、广播变量

    一言以蔽之: 累加器就是只写变量 通常就是做事件统计用的 因为rdd是在不同的excutor去执行的 你在不同excutor中累加的结果 没办法汇总到一起 这个时候就需要累加器来帮忙完成 广播变量是只 ...

  9. Spark和pyspark的配置安装

    如何安装Spark和Pyspark构建Spark学习环境[MacOs] JDK环境 Python环境 Spark引擎 下载地址:Apache-Spark官网 MacOs下一般安装在/usr/local ...

  10. Apache Spark 2.2.0 中文文档 - Spark 编程指南 | ApacheCN

    Spark 编程指南 概述 Spark 依赖 初始化 Spark 使用 Shell 弹性分布式数据集 (RDDs) 并行集合 外部 Datasets(数据集) RDD 操作 基础 传递 Functio ...

随机推荐

  1. P3_注册小程序账号&安装开发者工具

    注册小程序账号 点击注册按钮 使用浏览器打开 https://mp.weixin.qq.com/ 网址,点击右上角的"立即注册"即可进入到小程序开发账号的注册流程,主要流程截图如下 ...

  2. JZOJ 1121. Fix

    解析 考场时想多了,其实根本不用分阶段 一维状压 \(DP\) 就行了 可我没想清楚,加了个第几次去稳固一个点的阶段 然后时间就炸了!!! \(Code\) #include<cstdio> ...

  3. label勾选问题,checkbox

    <input id="overck_21" data-role="none" name="check" class="reg ...

  4. 基于Ubuntu搭建OpenGL开发环境

    1. 引言 笔者这里基于Ubuntu 20.04.3 LTS系统,搭建OpenGL开发环境,主要使用的库有GLFW和GLAD GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最 ...

  5. PULPINO仿真建立

    PULPINO仿真建立 PULPINO主要特点: systemverilog实现 有常规外设,GPIO.SPI.I2C.UART等 有调试接口 总线有AXI,外设总线为APB,扩展性好 脚本为cmak ...

  6. ubutu22.04开启ssh配置

    1.查看ubuntu版本信息 lsb_release -a 2.更新系统 sudo apt update && sudo apt upgrade -y 如果出现Ign:1 ...InR ...

  7. perl的学习:将分句脚本split-sentences.perl转为python脚本

    初识perl,只为完成分句脚本的转换.因此本文具有极强的目的性,perl的很多好用功能就不研究了,主要内容围绕分句脚本展开,部分基础知识就不再赘述. 1.仓库的地址:https://gitee.com ...

  8. 浅谈zookeeper

    zookeeper用来解决高可用问题,具有高可用,高性能,具有严格的顺序(只要是分布式系统就会是一个严格的顺序)访问控制能力的分布式协调服务,做分布式协调的作用,可以做服务的同步,维护配置文件和命名服 ...

  9. 删除指定 route ip 段

    route del -net 172.18.0.0 netmask 255.255.0.0

  10. dism修改easyu中10PEx64.wim文件

    从easyu的iso镜像中提取出10PEx64.wim文件,新建一个空分区,比如Z: 1.获取wim映像索引信息,命令 Dism /Get-WimInfo /WimFile:10PEx64.wim,一 ...