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。
  • 相关阅读:
    Android TTS
    观察者模式(C++实现)
    android 8未知来源app安装
    NotificationChannel
    java底层知识
    Java14
    数据库分区、分库分表
    二叉搜索树的第k大节点
    从上到下按层打印二叉树
    springcloud面试知识点
  • 原文地址:https://www.cnblogs.com/ronnieyuan/p/11845423.html
Copyright © 2011-2022 走看看