【雲星資料---Apache Flink實戰系列(精品版)】:Apache Flink高階特性與高階應用019-Flink中引數傳遞和容錯設定003
3.通過ExecutionConfig向Function傳遞引數
執行程式
package code.book.batch.sinksource.scala
import org.apache.flink.api.common.functions.RichMapFunction
import org.apache.flink.api.scala.{DataSet, ExecutionEnvironment, _}
import org.apache.flink.configuration.Configuration
/**
* Globally via the ExecutionConfig
* *
* Flink also allows to pass custom configuration values to the ExecutionConfig
* interface of the environment. Since the execution config is accessible in all
* (rich) user functions, the custom configuration will be available globally in all functions.
*/
object Parameters003scala {
def main(args: Array[String]): Unit = {
val env = ExecutionEnvironment.getExecutionEnvironment
//1.準備工人資料
case class Worker(name: String, salaryPerMonth: Double)
val workers: DataSet[Worker] = env.fromElements(
Worker("zhagnsan", 1356.67),
Worker("lisi", 1476.67)
)
//2.準備工作月份資料,作為引數用Configuration傳遞出去
val conf = new Configuration()
conf.setString("month", "4")
env.getConfig.setGlobalJobParameters(conf)
//3.接受引數進行計算(如果要用Configuration傳參,需要用RichFunction接受)
workers.map(new RichMapFunction[Worker, Worker] {
private var m = 0
override def open(parameters: Configuration): Unit = {
super.open(parameters)
//3.1獲取Configuration傳遞過來的引數
val globalParams = this.getRuntimeContext.getExecutionConfig.getGlobalJobParameters
m = globalParams.toMap.get("month").trim.toInt
}
override def map(w: Worker): Worker = {
//3.2計算最新工人工資資訊
Worker(w.name, w.salaryPerMonth * m)
}
}).print
}
}
執行效果
Worker(zhagnsan,5426.68)
Worker(lisi,5906.68)
相關文章
- 【雲星資料---Apache Flink實戰系列(精品版)】:Apache Flink高階特性與高階應用018-Flink中引數傳遞和容錯設定002Apache
- 【雲星資料---Apache Flink實戰系列(精品版)】:Apache Flink高階特性與高階應用020-Flink中引數傳遞和容錯設定004Apache
- 【雲星資料---Apache Flink實戰系列(精品版)】:Apache Flink高階特性與高階應用017-Flink中引數傳遞和容錯設定001Apache
- 【雲星資料---Apache Flink實戰系列(精品版)】:Apache Flink高階特性與高階應用015-Flink中廣播變數和分散式快取001Apache變數分散式快取
- 【雲星資料---Apache Flink實戰系列(精品版)】:Apache Flink高階特性與高階應用016-Flink中廣播變數和分散式快取002Apache變數分散式快取
- 【雲星資料---Apache Flink實戰系列(精品版)】:Apache Flink高階特性與高階應用011-Slot和Parallelism的深入分析006ApacheParallel
- 【雲星資料---Apache Flink實戰系列(精品版)】:Apache Flink高階特性與高階應用012-Slot和Parallelism的深入分析007ApacheParallel
- 【雲星資料---Apache Flink實戰系列(精品版)】:Apache Flink高階特性與高階應用013-Flink在批處理中常見的sink和source001Apache
- 【雲星資料---Apache Flink實戰系列(精品版)】:Apache Flink高階特性與高階應用014-Flink在批處理中常見的sink和source002Apache
- Apache Flink 進階(三):Checkpoint 原理解析與應用實踐Apache
- Apache Flink 進階(五):資料型別和序列化Apache資料型別
- Apache Flink 在鬥魚的應用與實踐Apache
- Apache Flink 在汽車之家的應用與實踐Apache
- Flink(1.11)高階程式設計——FlinkSQL程式設計SQL
- 深入 Python 資料分析:高階技術與實戰應用Python
- Apache Flink 進階入門(二):Time 深度解析Apache
- Apache Flink 在翼支付的實踐應用Apache
- 使用Apache Flink和Apache Ignit進行資料流分析Apache
- Apache Flink 在蔚來汽車的應用Apache
- Flink CDC 系列 - 實現 MySQL 資料實時寫入 Apache DorisMySqlApache
- Apache Flink 進階(一):Runtime 核心機制剖析Apache
- 「Mybatis系列」Mybatis高階應用MyBatis
- Go高階特性 13 | 引數傳遞:值、引用及指標之間的區別?Go指標
- Apache Flink 特性 - State TTL (Time-to-Live)Apache
- vue + axios 實現分頁引數傳遞,高階搜尋功能實現VueiOS
- Eta中的Apache Flink示例Apache
- JVM高階效能除錯實戰JVM除錯
- Laravel集合探學系列——高階訊息傳遞實現(二)Laravel
- 學習Spring 高階特性----Web應用與MVCSpringWebMVC
- DllImport進階:引數配置與高階主題探究Import
- apache flink 簡介Apache
- python中list列表的高階應用 高階函式Python函式
- Excel高階應用教程:資料處理與資料分析Excel
- 快手基於 Apache Flink 的實時數倉建設實踐Apache
- MySQL系列-- 5. MySQL高階特性MySql
- Mongodb高階特性MongoDB
- mysql高階特性MySql
- RocketMQ高階特性MQ