文章目录
步骤
- 获取批处理运行环境
- 分别创建两个数据集
- 使用 RichMapFunction 对 成绩 数据集进行 map 转换
- 在数据集调用 map 方法后,调用 withBroadcastSet 将 学生 数据集创建广播
- 实现 RichMapFunction
a. 将成绩数据(学生 ID,学科,成绩) -> (学生姓名,学科,成绩)
b. 重写 open 方法中,获取广播数据
c. 导入 scala.collection.JavaConverters._ 隐式转换
d. 将广播数据使用 asScala 转换为 Scala 集合,再使用 toList 转换为 scala List 集合
e. 在 map 方法中使用广播进行转换 - 打印测试
package com.czxy.flink.batch
import java.util
import org.apache.flink.api.common.functions.RichMapFunction
import org.apache.flink.api.scala.ExecutionEnvironment
import org.apache.flink.configuration.Configuration
/**
* 需求:
* 创建一个 学生 数据集, 包含以下数据
* |学生 ID | 姓名 |
* |------|------|
* List((1, "张三"), (2, "李四"), (3, "王五"))
* 将该数据, 发布到广播。
* 再创建一个 成绩 数据集,
* |学生 ID | 学科 | 成绩 |
* |------|------|-----|
* List( (1, "语文", 50),(2, "数学", 70), (3, "英文", 86))
* 请通过广播获取到学生姓名, 将数据转换为
* List( ("张三", "语文", 50),("李四", "数学", 70), ("王五", "英文", 86))
*/
object BatchBroadcastDemo {
def main(args: Array[String]): Unit = {
/**
* 实现步骤:
* 1) 获取批处理运行环境
* 2) 分别创