文档章节

共享变量 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
博文 273
码字总数 155300
作品 0
永州
程序员
私信 提问
java -- static/final/abstract

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

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

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

阿拉赛
2012/11/08
266
0
Java多线程编程:变量共享分析(Thread)

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

旭东的博客
2013/05/22
0
0
关于Struts的Action一点说明(线程安全性)

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

人型电脑天使心
2012/09/03
132
0
Java中静态跟非静态的区别总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/79926923 一.静态变量跟实例变量的区别: 1.静态变量:由static修饰,在JVM中,...

追风筝的猪
2018/04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部