微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

一、flink编程方法

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

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

  • Flink APP都是延迟执行的 
  • 只有当execute()被显示调用时才会真正执行 
  • 本地执行还是在集群上执行取决于执行环境的类型 
  • 好处:用户可以根据业务构建复杂的应用,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 这些功能在参数化函数、创建和确定本地状态、获取广播变量、获取运行时信息(例如累加器和计数器)和迭代信息时非常有帮助。

 

 

 

 


示例代码

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐