文档章节

共享变量 Accumulator 实例

别寒
 别寒
发布于 2017/07/24 15:41
字数 144
阅读 3
收藏 0
package cn.hhb.spark.core;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.api.java.function.VoidFunction;
import org.apache.spark.broadcast.Broadcast;
import org.apache.spark.Accumulator;

import java.util.Arrays;
import java.util.List;

/**
 * Created by dell on 2017/7/13.
 */
public class AccumulatorVariable {
    public static void main(String[] args) {
        SparkConf conf = new SparkConf()
                .setAppName("AccumulatorVariable")
                .setMaster("local")
                .set("spark.testing.memory", "2147480000");

        JavaSparkContext sc = new JavaSparkContext(conf);

        /**
         * 创建Accumulator变量,需要调用SparkContext的accumulator方法
         */
        final Accumulator<Integer> sum = sc.accumulator(0);

        List<Integer> numberList = Arrays.asList(1,2,3,4,5);
        JavaRDD<Integer> numbers = sc.parallelize(numberList);

        numbers.foreach(new VoidFunction<Integer>() {
            @Override
            public void call(Integer integer) throws Exception {
                // 在函数内部就可以对accumulator变量调用add方法累加值
                sum.add(integer);
            }
        });

        // 在driver程序中,可以调用accumulator的value()方法,获取其值
        System.out.println(sum.value());

        sc.close();
    }
}

© 著作权归作者所有

共有 人打赏支持
别寒
粉丝 29
博文 271
码字总数 137605
作品 0
永州
程序员
私信 提问
Spark算子执行流程详解之八

36.zip 将2个rdd相同位置的元素组成KV对 zipPartitions(other, preservesPartitioning = false) { (thisIter, otherIter) => new Iterator[(T, U)] { def hasNext: Boolean = (thisIter.has......

wl044090432
2017/03/02
0
0
Spark官方文档《Spark Programming Guide》解读

Spark官方文档《Spark Programming Guide》的链接: http://spark.apache.org/docs/latest/programming-guide.html 本文原文出处: http://blog.csdn.net/bluishglc/article/details/50715879......

bluishglc
2016/02/22
0
0
Spark笔记整理(五):Spark RDD持久化、广播变量和累加器

[TOC] Spark RDD持久化 RDD持久化工作原理 Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的partition持久化到内存中,并...

xpleaf
04/27
0
0
Optimizer in Tensorflow

前言 写Optimizer系列文章,是因为去年2017年在华为做深度学习相关工作时,学习实现了许多基于tensorflow的optimizer的,开源了其中两个分布式的optimizer,并且合入了tf社区,还有个相关专利...

JxKing
07/22
0
0
js高级函数值reduce篇

reduce() 方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。 arr.reduce(callback[, initialValue]) 参数 callback 执行数组中每个值的函数,包含四个参数: ac...

bug_killer
2017/12/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day02:管道符、shell及环境变量

1、管道符:"|" 用于将前一个指令的输出作为后一个指令的输入,且管道符后面跟的是命令(针对文档的操作):cat less head tail grep cut sort wc uniq tee tr split sed awk等) [root@localho...

芬野de博客
10分钟前
1
0
Kubernetes系列——Kubernetes 组件、对象(二)

一、Kubernetes 组件 介绍了Kubernetes集群所需的各种二进制组件。 Master 组件 Master组件提供集群的管理控制中心。Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一...

吴伟祥
19分钟前
0
0
Flink-数据流编程模型

1、抽象等级 Flink提供了不同级别的抽象来开发流/批处理应用程序。 1) 低层级的抽象 最低层次的抽象仅仅提供有状态流。它通过Process函数嵌入到DataStream API中。它允许用户自由地处理来自一...

liwei2000
37分钟前
1
0
Java开发Swing实战JFrame和JTabbedPane容器的用法详细解析

概述: 项目是一个桌面程序,涉及标签和按钮组件、布局管理器组件、面板组件、列表框和下拉框组件等组件,以及Swing事件处理机制。 下面先从最基础的界面开始。 /** * @author: lishuai * @...

金铭鼎IT教育
42分钟前
12
0
flask 之旅

环境 为了正确地跑起来,你的应用需要依赖许多不同的软件。 就算是再怎么否认这一点的人,也无法否认至少需要依赖Flask本身。 你的应用的运行环境,在当你想要让它跑起来时,是至关重要的。 ...

hblt-j
42分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部