Flink处理数据介绍

Flink流应用程序处理是以数据对象表示的事件流。在Flink内部,处理数据对象,通过被序列化和反序列化进行网络传送,从状态后端、检查点和保存点读取它们。

为了有效地做到这一点,Flink需要明确知道应用程序所处理的数据类型。Flink使用类型信息的概念来表示数据类型,并为每个数据类型生成特定的序列化器、反序列化器和比较器。

Flink还具有一个类型提取系统,该系统分析函数的输入和返回类型,以自动获取类型信息,从而获得序列化器和反序列化器。

Flink支持Java和Scala中所有常见数据类型,在某些情况下,例如lambda函数或泛型类型,需要显式地声明类型信息,应用程序才能正常工作。

使用最广泛的类型有如下几种:

基础数据类型

Flink支持Java、Scala所有基本数据类型,如Integer、String、Double、Long 等

java编写示例:

        DataStream<Long> stream1 = env.fromElements(1L, 2L, 3L, 4L);SingleOutputStreamOperator<Object> streamMap = stream1.map(new MapFunction<Long, Object>() {@Overridepublic Object map(Long n) throws Exception {return n+1;}});

Java 对象(POJOs)

java编写示例:

        DataStream<Persion> stream2 = env.fromElements(new Persion("王五",25),new Persion("赵六",26));DataStream<Persion> stream2Filter = stream2.filter(new FilterFunction<Persion>() {@Overridepublic boolean filter(Persion persion) throws Exception {if(persion.age>25){return true;}return false;}});

Java和Scala元组(Tuples)

java编写示例:

        DataStream<Tuple2<String, Integer>> stream3 =  stream2.flatMap(new FlatMapFunction<Persion, Tuple2<String, Integer>>() {@Overridepublic void flatMap(Persion persion, Collector<Tuple2<String, Integer>> collector) throws Exception {//形成一个元组Tuple2<String, Integer> tp = Tuple2.of(persion.name, persion.age+1);//将组成的Tuple放入到 Collector 集合,并输出collector.collect(tp);}});

Scala 样例类(case classes)

示例:

case class Person(name: String, age: Int)
val persons: DataStream[Person] = env.fromElements(
Person("王五", 25),
Person("赵六", 26) )
persons.filter(p => p.age > 25)

其它数据类型 Arrays, Lists, Maps, Enums等

Flink 也可支持Java 和Scala 语言中的其它数据类型,如Java语言的数据类型:ArrayList,HashMap,Enum等。

java 汇率使用的数据类型_Flink计算支持的数据类型相关推荐

  1. C51语言支持哪些数据类型,C51编译器支持的数据类型(1)

    1.1 C-51 编译器支持下列数据类型: 数 据 类 型 长 度 值 域 bit 1 字节 0 或 1 signed char 1 字节 -128-+127 unsigned char 1 字节 0 ...

  2. 不支持python数据类型_python不支持的数据类型有( )。_学小易找答案

    [单选题]透视常用术语中,把画者视线与视平线相交叉的点称为 [多选题]下列属于不恰当服务用语的是( ). [单选题]除非万不得已的特殊情况,切忌( )打电话,以免惊扰对方及其家人. [判断题]坐沙发时 ...

  3. go函数详解:函数定义、形参、返回值定义规范、函数内存分析、不支持重载、支持可变参数、基本数据类型和数组默认都是值传递的、支持自定义数据类型、函数返回值命名

    引入 [1]为什么要使用函数: 提高代码的复用型,减少代码的冗余,代码的维护性也提高了 [2]函数的定义: 为完成某一功能的程序指令(语句)的集合,称为函数. [3]基本语法 func 函数名(形参列 ...

  4. Go支持自定义数据类型:使用type来定义,类似于数据类型的一个别名

    为了简化数据类型定义,Go支持自定义数据类型 基本语法: type 自定义数据类型名 数据类型 可以理解为 : 相当于起了一个别名 例如:type mylnt int ----->这时mylnt ...

  5. ES:ES支持的数据类型

    ES文档字段分为两类: 元字段(Meta-field) :不需要用户定义,在任一文档中都存在, 如_id. _index. _type 等 业务字段: 用户自定义的字段, 也就是我们添加数据时, JS ...

  6. Java中switch都可以支持哪些数据类型

    Java中switch都可以支持哪些数据类型 在JDK1.5之前,switch循环只支持byte short char int四种数据类型. JDK1.5 在switch循环中增加了枚举类与byte ...

  7. 【缓存中间件】redis 支持的数据类型

    文章目录 前言 一.字符串 二.哈希 三. 列表 四.集合 五.有序集合 六.位图 Redis Bitmap 七.基数统计 HyperLogLog 八.Geo 地理位置 九.Streams 流 应用场 ...

  8. [java] 汇率换算器实现-插曲1-正则表达式(1)

    [java] 汇率换算器实现-插曲1-正则表达式(1) [java] 汇率换算器实现-插曲1-正则表达式(1) Table of Contents 1 系列文章地址 2 前言 3 什么是正则表达式 4 ...

  9. java基础包的基本信息_JAVA 基础 之 基本数据类型、引用类型和包...

    java中数据类型有两类 基本数据类型 引用类型 基本数据类型 整数型 byte - 8bit short - 16bit int - 32bit long - 64bit [赋值时一般在数字后加上* ...

最新文章

  1. 【译】Object Dumper: 函数式程序设计编码中的强大工具
  2. 浅谈.NET中的类型和装箱、拆箱原理
  3. CocoaPods设置target支持的swift版本
  4. Linux查看swap使用情况小脚本
  5. Java程序发送邮件
  6. LVS nat 负载均衡实验
  7. 【转】英文论文中“such as, for example, e.g., i.e., etc., et al. ”的用法分析
  8. 【工具与解决方案】从做项目中积累学习
  9. 关于微信小程序下拉出现三个小点
  10. 【今日CV 视觉论文速览】05 Dec 2018
  11. Linux查找class类所在jar包
  12. java调用nodejs程序,从java里面调用node.js脚本
  13. php反序列化java.long_细数java中Long与Integer比较容易犯的错误总结
  14. C++第五章课后习题16-字符串按逆序输出
  15. 时间数值缺失产生的字符串NaT处理
  16. [app-name] was compiled with optimization - stepping may behave oddly; variables may not be availabl
  17. Android Camera之Deferred Surface
  18. luogu P5320 [BJOI2019]勘破神机
  19. 20%的美国Z世代每天刷TikTok超过5小时;多特瑞中国首家旗舰店落户上海 | 美通社头条...
  20. MATLAB:图片缩放

热门文章

  1. LeetCode中等题之删除链表的中间节点
  2. 新一代图像AI ISP技术
  3. CUDA 7 Stream流简化并发性
  4. 利用UltraScale和UltraScale+FPGA和MPSOC加速DSP设计生产力
  5. 2021年大数据常用语言Scala(十四):基础语法学习 数组  重点掌握
  6. 怎么卸载云骑士装机大师
  7. Android 人民币符号在布局中实现的效果不一样的处理方法
  8. 003_如何学好英语?
  9. 简析平衡树(三)——浅谈Splay
  10. 查找无序数组中第K大的数