当前位置: 首页 > news >正文

4. 广播变量

在这里插入图片描述

一、分区规则(DataStream Broadcast)和广播变量(Flink Broadcast)

1.1 DataStream Broadcast(分区规则)

​ 分区规则是把元素广播给所有的分区,数据会被重复处理。

DataStream.broadcast()

1.2 Flink Broadcast(广播变量)

​ 类似于Spark广播变量,广播的数据是Dataset,接收广播的也是Dataset

import org.apache.flink.api.common.functions.RichMapFunction
import org.apache.flink.api.scala.{DataSet, ExecutionEnvironment}
import org.apache.flink.configuration.Configuration
import org.apache.flink.streaming.api.scala.{StreamExecutionEnvironment, createTypeInformation}object BroadCastTest1 {def main(args: Array[String]): Unit = {val env = ExecutionEnvironment.getExecutionEnvironment  //创建批处理执行环境val broadcastData = List(("zs", 18), ("ls", 28), ("ww", 38)) // 创建要广播的datasetval tupleData = env.fromCollection(broadcastData)val toBroadcastData = tupleData.map(tup => {Map(tup._1->tup._2)})val text: DataSet[String] = env.fromElements("zs", "ls", "ww")  //创建接收广播的datasetval result = text.map(new RichMapFunction[String, String] {var listData: java.util.List[Map[String, Int]] = nullvar allMap = Map[String, Int]()override def open(parameters: Configuration): Unit = {this.listData = getRuntimeContext.getBroadcastVariable[Map[String, Int]]("bd")	//获取broadcastval it = listData.iterator()while(it.hasNext) {val next = it.next()allMap = allMap.++(next)}}override def map(value: String): String = {val age = allMap.getOrElse(value, 1)value + ", " + age}}).withBroadcastSet(toBroadcastData, "bd")result.printenv.execute()}
}
http://www.lryc.cn/news/160191.html

相关文章:

  • GPT 内部 — I : 了解文本生成
  • 平板触控笔哪款好用?好用的第三方apple pencil
  • Mac 上更新系统PATH环境变量
  • Visual Studio Code 终端配置使用 MySQL
  • 12 | 使用 Spark SQL执行CURL
  • 容器编排学习(七)控制器介绍与使用
  • 一文看懂微信小程序新版隐私协议(附带弹窗组件)
  • Java认识异常(超级详细)
  • 危险边缘:揭示 Python 编程中易被忽视的四个安全陷阱
  • 抖店开通后,新手必须要知道的几个做店技巧,建议认真看完
  • FPGA时序分析与约束(5)——时序路径
  • Flutter:构建跨平台应用的未来选择
  • 08_瑞萨GUI(LVGL)移植实战教程之LVGL对接串口打印
  • 【LeetCode75】第五十题 无限集中的最小数字
  • 关于 Unity 连接 MuMu 模拟器上的 Unity Remote 5 的方法
  • OpenCV 02(色彩空间)
  • 【动手学深度学习】--循环神经网络
  • 快捷支付是什么?怎么申请支付接口?
  • 【MySQL】数据库基础知识
  • 算法训练day36|贪心算法 part05(重叠区间三连击:LeetCode435. 无重叠区间763.划分字母区间56. 合并区间)
  • [Android] AndroidManifest.xml 详解
  • idea远程debug调试
  • 离散化,树状数组,P5459 [BJOI2016] 回转寿司
  • 论文复现--VideoTo3dPoseAndBvh(视频转BVH和3D关键点开源项目)
  • JS 检查某个值是否为某个类的实例
  • 生动理解深度学习精度提升利器——测试时增强(TTA)
  • Redis基础知识(四):使用redis-cli命令测试状态
  • 【web开发】4、JavaScript与jQuery
  • 关于el-date-picker组件修改输入框以及下拉框的样式
  • JSCPC f ( 期望dp