文档章节

共享变量 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();
    }
}

© 著作权归作者所有

共有 人打赏支持
别寒
粉丝 30
博文 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
js高级函数值reduce篇

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

bug_killer
2017/12/26
0
0
Optimizer in Tensorflow

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

JxKing
07/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash各类扩展详解

Bash各类扩展详解 Bash中主要包括大括号扩展、波浪号扩展、变量扩展、子命令扩展、文件名扩展和算数扩展。这些扩展组合在一起为Bash带来了极大的易用性。掌握这些扩展的用法和功能,能够为B...

小陶小陶
44分钟前
1
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
5
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
3
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部