zoukankan      html  css  js  c++  java
  • 广播变量、累加器、collect

    广播变量、累加器、collect

    spark集群由两类集群构成:一个驱动程序,多个执行程序。

    1、广播变量 broadcast

    广播变量为只读变量,它由运行sparkContext的驱动程序创建后发送给会参与计算     的节点。也可被非驱动程序所在节点(即工作节点)访问,访问是调用该变量的value方法。

    广播变量是存储在内存中。

    sc.parallelize(List("1","2","3")).map(x => broadcastAList.value ++ x).collect

    返回一个新的List对象,记录由之前记录的那个broadcastAList里的记录与新建的RDD里的3条记录分列拼接而成。

    2、累加器 accumulator

    也是一种被广播到工作节点的变量。与广播变量不同的是,它可累加,但这种累加必须是一种有关联的操作,即它得能保证在全局范围内累加起来的值被正确的并行计算以及返回驱动程序。每个工作节点只能访问和操作其自己本地的累加器,全局累加器则只允许驱动程序访问,同样通过value访问。

    3、collect函数

    一般仅在的确需要将整个结果集返回驱动程序并进行后续处理时才有必要调用。

    若在一个非常大的数据集上调用该函数,可能耗尽驱动程序的可用内存,进而导致程序崩溃。

    高负荷的处理应尽可能地在整个集群上进行,从而避免驱动程序成为系统瓶颈。

  • 相关阅读:
    Spring Boot 2.1.10 学习笔记(2)
    Spring Boot 2.1.10 学习笔记(1)
    Win10 下载与激活 MSDN
    Java JDK 1.8 下载及其版本说明 8u202(最后一个免费版)
    shell函数开发意见优化系统脚本
    php大文件下载支持断点续传
    xunsearch使用笔记
    微信使用的curl方法
    php执行sql语句打印结果
    二维数组排序:array_orderby(php官网评论)
  • 原文地址:https://www.cnblogs.com/llphhl/p/5772537.html
Copyright © 2011-2022 走看看