1. DataStream Source

    • 基于文件

      • readTextFile(path)

        • 读取 text 文件的数据
      • readFile(fileInputFormat, path)
        • 通过自定义的读取方式, 来读取文件的数据
    • 基于socket

      • socketTextStream

        • 从 socket 端口中读取数据
    • 基于集合

      • fromCollection(Collection)

        • 从 collection集合中读取数据, 从而形成一个数据流, 集合中的元素类型需要一致
      • fromElements(T ...)
        • 从数组里读取数据, 从而形成一个数据流, 集合中的元素类型需要一致。
    • 自定义 source

      • addSource - 自定义一个数据源,比如FlinkKafkaConsumer,从kafka里读数据。
  2. DataStream Transformations

    转换算子 描述
    Map DataStream --> DataStream 采用一个元素并生成一个元素
    FlatMap DataStream --> DataStream 一个元素并生成零个, 一个或多个元素
    Filter DataStream --> DataStream 过滤函数返回 false 的数据, true 的数据保留
    KeyBy DataStream --> KeyedStream 指定 key将 K, V 格式的数据流进行逻辑分区, 将相同 key 的记录分在同一分区中。
    Aggregations KeyedStream --> DataStream 对k,v格式的数据流进行聚合操作。
    Reduce KeyedStream --> DataStream 对k,v的数据进行“减少操作”,这个操作逻辑自己写,加减乘除都行
  3. DataStream Sink

    • writeAsText()

      • 将计算结果输出成text文件
    • writeAsCsv()
      • 将计算结果输出成csv文件
    • print()
      • 将计算结果打印到控制台
    • writeUsingOutputFormat()
      • 自定义输出方式
    • writeToSocket
      • 将计算结果输出到某台机器的端口上。
  4. DataType

    • Flink对DataSet或DataStream中可以包含的元素类型设置了一些限制。

    • 它支持多种不同类别的数据类型:

      • Java Tuples and Scala Case Classes
      • JAVA POJOs
      • Primitive Types
    • Java Tuples and Scala Case Classes

    • POJO

      • 如果满足以下要求,则Flink将Java和Scala类视为特殊的POJO数据类型:

        • 必须是public class
        • 必须有一个无参构造器(默认构造函数)
        • 所有字段都是public的,或者必须通过getter和setter函数访问。
        • 对于一个名为foo的字段getter和setter方法的字段必须命名getFoo()和setFoo()。
        • 成员属性的类型必须是Flink支持的数据类型。目前,Flink使用Avro序列化任意对象(例如Date)。
    • Primitive Types(原始类型)

      • Flink支持所有Java和Scala的原始类型,如Integer,String和Double。

Flink笔记(二) DataStream Operator(数据流操作)的更多相关文章

  1. jQuery学习笔记(二)jQuery中DOM操作

    目录 DOM操作分类 jQuery中的各种DOM操作 查找节点 创建节点 删除节点 复制节点 替换节点 包裹节点 属性操作 样式操作 对HTML.文本和值的操作 遍历节点 CSS-DOM操作 小结 本 ...

  2. python笔记二(mysql数据库操作)

    python2.x使用MySQLdb python3.x使用pymysql代替MySQLdb 不过我使用的是python3.5,MySQLdb还是可以在python3.5使用的. #!/usr/bin ...

  3. python笔记二:常用数据类型操作

    1.切片:常用于取list或tuple的部分元素的操作 1)l=[1,2,3,4,5,6] l[:3]表示取前3个值,l[1:5]表示1到5个值, L[-3:]从列表最后往前数即最后3个数.... 2 ...

  4. python3笔记二十一:时间操作datetime和calendar

    一:学习内容 datetime calendar 二:datetime 1.模块说明:可以理解为datetime基于time进行了封装,提供了各种使用的函数,datetime模块的接口更直接,更容易调 ...

  5. python3笔记二十:时间操作time

    一:学习内容 time时间戳 time元组 time字符串 time时间转换图解 二:time 需要引入:import time 1.概念 UTC(世界协调时间):格林尼治天文时间,世界标准时间,在中 ...

  6. jquery学习笔记(二):DOM元素操作

    内容来自[汇智网]jquery学习课程 2.1 元素属性操作 1.获取元素的属性 语法:attr(name) 参数name表示属性的名称 2.设置元素的属性 单个属性设置语法:attr(key,val ...

  7. python学习笔记(二)---for循环与操作列表

    内容概要 for循环 range(start,end,step)函数 生成随机数列表 list()函数 将range()的结果整合到某个列表 列表的操作 切片(start: end :step) 元组 ...

  8. Flink流处理(三)- 数据流操作

    3. 数据流操作 流处理引擎一般会提供一组内置的操作,用于对流做消费.转换,以及输出.接下来我们介绍一下最常见的流操作. 操作分为无状态的(stateless)与有状态的(stateful).无状态的 ...

  9. git的学习笔记(二):git远程操作

    1.创建ssh key ssh-keygen -t rsa -C "your_email@example.com" 执行命令后会在用户的家目录生成.ssh的隐藏文件夹,文件夹里有公 ...

随机推荐

  1. python基本输入输出函数与变量类型

    7.python具有三个重要的输出输入函数:print(输出)/eval(转换)/input(输入): 8.对于输出函数print函数的具体使用规则如下:(1)输出字符串:print("字符 ...

  2. 博途V13 仿真S7-300PLC 与HMI 的以太网通讯。实现简单功能 HMI 型号是TP900

    本项目仅完成S7-300 PLC 型号为 315-2DP/PN HMI的型号是 智慧面板TP900 通过以太网进行连接.通过网络及连接 进行组态 PLC的程序 功能一 完成电动机的启动与停机 功能二 ...

  3. java虚拟机之垃圾回收机制

    一.需要回收的内存区域     程序计数器.虚拟机栈.本地方法栈 3 个区域随线程生灭(因为是线程私有),栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作.而 Java 堆和方法区则不一 ...

  4. docker 日志清理

    首先确认 docker 使用的存储引擎 docker info 如果使用 Logging Driver: json-file, 那么日志默认在 /var/lib/docker/contains/xxx ...

  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:"text-primary" 类的文本样式

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. POJ 3669 Meteor Shower BFS求最小时间

    Meteor Shower Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 31358   Accepted: 8064 De ...

  7. JuJu团队1月9号工作汇报

    JuJu团队1月9号工作汇报 JuJu   Scrum 团队成员 今日工作 剩余任务 困难 飞飞 将示例程序打包成exe 将crossentrophy和softmax连接起来 无 婷婷 -- 完善ma ...

  8. python2.x 脚本 中文乱码 解决方法

    在python脚本起始位置添加如下代码 # -*- coding: UTF-8 -*

  9. 《ES6标准入门》(阮一峰)--12.Symbol

    1.概述 ES5 的对象属性名都是字符串,这容易造成属性名的冲突.比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突.如果有一种 ...

  10. UVALive 6853(dp)

    题意:已知有n个城市,某歌手每月进行一场演唱会,共持续c个月,可连续两个月在同一个城市.城市间的路费已给出,且已知每个城市在第k(1<=k<=c)个月举办演唱会的所得利润,求最终的最大利润 ...