5、flink常见函数使用及自定义转换函数

一、flink编程方法

  • 获取执行环境(execution environment)
  • 加载/创建初始数据集
  • 对数据集进行各种转换操作(生成新的数据集)
  • 指定将计算的结果放到何处去
  • 触发APP执行

flink的计算方式和spark一样都是惰性的

  • Flink APP都是延迟执行的 
  • 只有当execute()被显示调用时才会真正执行 
  • 本地执行还是在集群上执行取决于执行环境的类型 
  • 好处:用户可以根据业务构建复杂的应用,Flink可以整体进优化并生成执行计划

5、flink常见函数使用及自定义转换函数

 

二、DataStream

DataStream 是 Flink 流处理 API 中最核心的数据结构。它代表了一个运行在多个分区上的并行流。一 个 DataStream 可以从 StreamExecutionEnvironment 通过env.addSource(SourceFunction) 获得。 DataStream 上的转换操作都是逐条的,比如 map(),flatMap(),filter() 

2.1、自定义转换函数

1、函数

scala函数

data.flatMap(f => f.split(" "))

java的lambda表达式

data.flatMap(f -> f.split(" "));

2、实现接口

data.flatMap(new FlatMapFunction[String,String] {
    override def flatMap(value: String, out: Collector[String]) = {
        val strings: Array[String] = value.split(" ")
            for(s <- strings){
                out.collect(s)
            }
        }
    })

3、RichFunctions

RichFunction中有非常有用的四个方法:open,close,getRuntimeContext和setRuntimecontext 这些功能在参数化函数、创建和确定本地状态、获取广播变量、获取运行时信息(例如累加器和计数器)和迭代信息时非常有帮助。

5、flink常见函数使用及自定义转换函数

 

 5、flink常见函数使用及自定义转换函数

 

 


示例代码

 

上一篇:蓄水池抽样


下一篇:Flink DataStream API