Flink 学习3 - 流处理API的基本转换算子 + 多流转换算子

流处理API-Transform

1、基本转换算子

map、flatMap、filter通常被统一称为基本转换算子(简单转换算子)
在这里插入图片描述
在这里插入图片描述
DataStream 里没有 reduce 和 sum 这类聚合操作的方法,因为 Flink 设计中,所有数据必须先分组才能做聚合操作。
先 keyBy 得到 KeyedStream,然后调用其 reduce、sum 等聚合操作方法。(先分组后聚合)

常见的聚合操作算子主要有:

  • keyBy
  • 滚动聚合算子 Rolling Aggregation
  • reduce

DataStream -> KeyedStream:逻辑地将一个流拆分成不相交的分区,每个分区包含具有相同key的元素,在内部以hash的形式实现的。

1、KeyBy会重新分区; 2、不同的key有可能分到一起,因为是通过hash原理实现的;

Rolling Aggregation

这个算子可以针对 KeyedStream 每一个支流做聚合

  • sum()
  • min()
  • max()
  • minBy()
  • maxBy()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

错误

//lamda表达式 are not supported at language level ‘7’ 改成 level8
在这里插入图片描述
This type (GenericType<com.example.apitest.beans.SensorReading>) cannot be used as key
出现这种错误是因为你对象没有无参构造方法
在这里插入图片描述
添加无参数构造方法
在这里插入图片描述

reduce - 适用于更加一般化的聚合操作

在这里插入图片描述
在这里插入图片描述

2、多流转换算子

  • split 和 collect

在这里插入图片描述
在这里插入图片描述

  • Connect 和 CoMap

在这里插入图片描述
在这里插入图片描述

  • Union

在这里插入图片描述

相关推荐

  1. Flink之DataStream API转换算子

    2024-03-10 06:56:01       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 06:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 06:56:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 06:56:01       82 阅读
  4. Python语言-面向对象

    2024-03-10 06:56:01       91 阅读

热门阅读

  1. 区块链web3智能合约Solidity学习资源整理

    2024-03-10 06:56:01       44 阅读
  2. 【MySQL 系列】在 Ubuntu 上安装 MySQL

    2024-03-10 06:56:01       47 阅读
  3. bash 给表格加列名

    2024-03-10 06:56:01       39 阅读
  4. C++ 友元

    2024-03-10 06:56:01       43 阅读
  5. 我和我的DBA之路

    2024-03-10 06:56:01       42 阅读
  6. 2024年FPGA可以进吗

    2024-03-10 06:56:01       38 阅读