zoukankan      html  css  js  c++  java
  • Flink笔记(二) DataStream Operator(数据流操作)

    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。
  • 相关阅读:
    C语言中scanf()的用法
    Android学习笔记——Day3
    Android学习笔记——Day6
    Android学习笔记——Day5
    Android学习笔记——Day4
    Android学习笔记——Day2
    一个计时器按钮
    直方图均衡
    拉普拉斯算子进行图像边缘提取
    在jframe上显示超大号的文字
  • 原文地址:https://www.cnblogs.com/ronnieyuan/p/11845423.html
Copyright © 2011-2022 走看看