文档章节

共享变量 BroadcastVariable 实例

别寒
 别寒
发布于 2017/07/24 15:23
字数 185
阅读 5
收藏 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 java.util.Arrays;
import java.util.List;

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

        JavaSparkContext sc = new JavaSparkContext(conf);

        /**
         * 在java中,创建共享变量,就是调用SparkContext的broadcast方法
         * 获取的返回结果Broadcast<Integer>类型
         */
        final int factor = 3;
        final Broadcast<Integer> factorBroadcast = sc.broadcast(factor);

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

        // 让集合中的每个数字,都乘以外部定义的那个factor
        JavaRDD<Integer> multipleNumbers = number.map(new Function<Integer, Integer>() {
            @Override
            public Integer call(Integer number) throws Exception {
                // 使用共享变量时,调用其value(),即可获取其内部共享的值
                int factor = factorBroadcast.value();
                return number * factor;
            }
        });

        multipleNumbers.foreach(new VoidFunction<Integer>() {
            @Override
            public void call(Integer integer) throws Exception {
                System.out.println(integer);
            }
        });


        sc.close();
    }
}

© 著作权归作者所有

共有 人打赏支持
别寒
粉丝 30
博文 271
码字总数 137605
作品 0
永州
程序员
java -- static/final/abstract

1.static 当一个方法或者变量需要初始化时被加载,或者是经常被调用的时候,可以使用static修饰它们。弊处是:初始化被加载,比较占用内存。 java语言中没有 全局变量 这个概念,可以使用sta...

求是科技
2016/09/22
12
0
asp.net static 在服务器端问题

以前总以为是static是个好的修饰符,也知道它是被类的实例所共享的,一个实例改变了带有static修饰符变量的值,那么其他的实例都会变成修改后的值。这个在一台电脑上面永远不会出现问题,但是...

阿拉赛
2012/11/08
0
0
java中的实例成员与类成员

首先, 类的目的是抽象出一类事物共有的属性和行为,并用一定的语法格式来描述所抽象出的属性和行为。也即是说,类是一种用于创建具体实例(对象)的数据类型。 类体中包括成员变量的声明和方...

牧羊人Berg
2015/10/12
90
0
关于Struts的Action一点说明(线程安全性)

今天看到有人发帖子问Action的问题,我想来说明一下。 虽然我也不能算精通,但是希望把我知道的和大家分享一下; 我没有用过Struts2,一直在用Struts。不知道是不是一样的。 对Struts,我可以...

人型电脑天使心
2012/09/03
0
0
Java多线程编程:变量共享分析(Thread)

在编写多线程程序时,最重要的就是搞清楚哪些变量是共享的,哪些变量是不共享的。也就是要分析清楚其中的原理呀。 因为最近要使用多线程就看了一些,对使用Thread类的子类创建线程的情况,总...

旭东的博客
2013/05/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

实战讲解高并发和秒杀抢购系统设计

互联网特别是电商平台,阿里双11秒杀、还有12306春运抢票、以及平时各种节假日抢购活动等,都是典型的高并发场景。 这类场景最大的特征就是活动周期短,瞬间流量大(高并发),大量的人短期涌...

xtof
10分钟前
0
0
代码质量管理平台-sonarqube

在工作中,往往开发的时候会不怎么注重代码质量的人很多,存在着很多的漏洞和隐患等问题,sonarqube可以进行代码质量的审核,而且十分的残酷。。。。。接下来我们说下怎么安装 进入官网下载:...

落叶清风
13分钟前
4
0
在Ubuntu安装和配置Sphinx

Ubuntu系统默认是配置有sphinx的,先检查一下,别多此一举。。。。。 在开始本指南之前,您需要: 一个Ubuntu 16.04服务器。 sudo的一个非root用户,您可以通过以下设置本教程 。 安装在服务...

阿锋zxf
22分钟前
0
0
Qt编写输入法V2018超级终结版

对于qt嵌入式linux开发人员来说,输入法一直是个鸡肋问题,要么不支持实体键盘同步,要么不能汉字输入,要么不支持网页输入等,这几年通过陆续接触大量的各种输入法应用场景客户,得到真实需...

飞扬青云
33分钟前
0
0
TypeScript基础入门之高级类型的多态的 this类型

转发 TypeScript基础入门之高级类型的多态的 this类型 高级类型 多态的this类型 多态的this类型表示的是某个包含类或接口的子类型。 这被称做F-bounded多态性。 它能很容易的表现连贯接口间的...

durban
39分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部