一.引言
除了操作的常规输入之外,广播变量 Broadcast Value 允许使一个数据集对操作的所有并行实例可用,即适合 task 都需要公用的变量,就像是 spark 中各个 executor 都需要访问的公共变量一样。这对于辅助数据集或依赖于数据的参数化非常有用。然后,该数据集将作为一个集合在操作员处进行访问。在 Flink 中,广播变量通过下述方法生成和获取 :
生成 : withBroadcastSet(DataSet, String) 前者为广播的数据集,后者为该数据集对应的名字标识
获取 : getRuntimeContext().getbroadcastvariable(String) 方法获取,参数为生成对应的名字标识
二.Boardcast 使用 demo
本例将在 DataSet 的 map 操作中调用 broadcast value 并打印其结果。
val env: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment
import org.apache.flink.api.scala._
// 1. The DataSet to be broadcast
// A.创建
val toBroadcastV1 = env.fromElements(1, 2, 3)
val toBroadca

本文介绍了Flink中的Broadcast Variables,用于提供全局共享数据。通过`withBroadcastSet`生成广播变量,`getRuntimeContext().getBroadcastVariable`获取。在DataSet的map操作中使用广播变量,展示了创建、广播、获取的步骤,并通过一个示例解释了广播变量的优势,适用于所有Task共享的小型数据集,避免每个Task重复初始化大型数据集。
订阅专栏 解锁全文
2042

被折叠的 条评论
为什么被折叠?



