flink 广播变量

这是广播变量的学习:
Java代码的实现:

    package batch;
    
    import org.apache.flink.api.common.functions.MapFunction;
    import org.apache.flink.api.common.functions.RichMapFunction;
    import org.apache.flink.api.java.DataSet;
    import org.apache.flink.api.java.ExecutionEnvironment;
    import org.apache.flink.api.java.operators.DataSource;
    import org.apache.flink.api.java.operators.MapOperator;
    import org.apache.flink.api.java.tuple.Tuple2;
    import org.apache.flink.configuration.Configuration;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    
    public class BatchDemoBroadCast {
   
        /**
         * broadcast 广播变量
         * 需求:
         * flink会从数据源中获取到用户的姓名
         * 最终需要把用户的姓名和年龄信息打印出
         *
         * 分析
         * 所以需要在中间的map处理的时候获取用户的年龄的信息
         * 建议吧 用户的关系数据集使用广播变量进行处理
         *
         *
         *注意:如果多个算子需要使用同一份使用的一份数据集,那么需要在对应的多个算子后面分别注册广播变量
         *广播出去的变量存在每个节点内存中,所以这个数据集不能太大,因为广播出去的数据,会存在内存,除非程序执行结束
         * 广播变量在初始化广播出去以后不支持修改,这样才能保证每个节点的数据都是一致的!
         *
         *
         * @param args
         */
        public static void main(String[] args) throws Exception{
   
            ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
            ArrayList<Tuple2<String,Integer>> datalist=new ArrayList<>();
            datalist.add
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值