Flink 常用算子总结

flink常用算子整理 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考。 阅读详情

1.前言

之前公司是用spark的,现在公司用flink,flink中有很多与spark不同的算子,功能非常强大,这里对一些不同于spark的算子使用方法进行总结,方便以后查阅。

一次可能更新不全,会慢慢总结,希望路过的看到的留言帮忙一起总结,谢谢大家。

2.connect/coMap/coFlatMap

Connect算子主要是为了合并两种或者多种不同数据类型的数据集,合并后会保留原来数据集的数据类型。连接操作允许共享状态数据,也就是说在多个数据集之间可以操作和查看对方数据集的状态。

对于ConnectedStreams类型的数据集不能直接进行类似Print()的操作,需要再转换成DataStream类型数据集.

在Flink中ConnectedStreams提供的map()方法和flatMap() 需要定义CoMapFunciton或CoFlatMapFunction分别处理输入的DataStream数据集.

package it.kenn.operators;

import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.ConnectedStreams;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.co.CoMapFunction;

/**
 * @author 
 * @date 2020-11-29
 * 测试connect的使用
 */
public class ConnectDemo {
    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        DataStreamSource<Integer> intStream = env.fromElements(1, 2, 3, 4, 5, 6, 7);
        DataStreamSource<String> strStream = env.fromElements("aa", "bb", "cc", "dd", "ee");
        ConnectedStreams<Integer, String> connectedStreams = intStream.connect(strStream);
        SingleOutputStreamOperator<Tuple2<String, Integer>> useCoMapFuncConnectedStream = connectedStreams.map(new CoMapFunction<Integer, String, Tuple2<String, Integer>>() {
            @Override
            public Tuple2<String, Integer> map1(Integer e) throws Exception {
                return new Tuple2<>("default", e);
            }

            @Override
            public Tuple2<String, Integer> map2(String s) throws Exception {
                return new Tuple2<>(s, 0);
            }
        });
        useCoMapFuncConnectedStream.print();
        env.execute();
    }
}

输出结果

7> (default,4)
8> (default,5)
5> (default,2)
4> (default,1)
6> (default,3)
9> (default,6)
10> (default,7)
5> (aa,0)
9> (ee,0)
7> (cc,0)
6> (bb,0)
8> (dd,0)

上面是比较常规的connect函数的用法,但是实用性不高。两个数据流通过这种处理方式通常不能达到用户想要的效果。

 

2.broadcast和connect算子的联合使用

未完待续...

flink api 常用算子的操作 flink api常用操作算子 1.flink 中算子是将一个或多个DataStream转换为新的DataStream,可以将多个转换组合成复杂的数据流拓扑 2.在flink中有多种不同的DataStream类型,他们之间是通过使用各种算子进行的 3.在flink中使用scala语言开发,需要引用import org.apache.flink.streaming.api.scala.Stream... 阅读详情

相关推荐

数据转换必须熟悉的 Operator(算子)

在 Flink 应用程序中,无论你的应用程序是批程序,还是流程序,都是上图这种模型,有数据源(source),有数据下游(sink),我们写的应用程序多是对数据源过来的数据做一系列操作,总结如下。 Source: 数据源,Flink 在流处理和批处理上的 source 大概有 4 类:基于本地集合的 source、基于文件的 source、基于网络套接字的 source、自定义的 source...

http://www.54tianzhisheng.cn/ 872

Flink流计算常用算子大全

Flink 已经提供了若干实现好了的 source functions,当然我们也可以通过实现 SourceFunction 来自定义非并行的source或者实现 ParallelSourceFunction 接口或者扩展 RichParallelSourceFunction 来自定义并行的 source。这个时候本来总体数据量只需要10分钟解决的问题,出现了数据倾斜,机器1上的任务需要4个小时才能完成,那么其他3台机器执行完毕也要等待机器1执行完毕后才算整体将任务完成;逻辑上将流分区为不相交的分区。

qq_63483349的博客 2195

Flink常用算子Transformation介绍

Flink学习笔记(十):1.官方文档        Flink中的算子,是对 DataStream 进行操作,返回一个新的 DataStream 的过程。Transformation 过程,是将一个或多个 DataStream 转换为新的 DataStream,可以将多个转换组合成复杂的数据流拓扑     &nb...

扛麻袋的少年的博客 3626

Flink的常用算子以及实例(详解)(赞)

map的使用范围就是需要对的那个数据进行处理,并且每次返回一个数据的时候,map就比较方便了。在实际生产中,不可能让我们完成这么简单的操作就行了,所以我们需要更复杂的操作,而reduce就是满足这个条件,它可以让我们自定义聚合的方式。我们来看看reduce的源码reduce需要传入的是一个ReduceFunction的对象,我们再来看看ReduceFunction是个什么东西var1是当前这个分组的状态,var2是新加入的值,而reduce函数体就是我们要进行的操作,返回一个新的状态。

wukong3158的博客 1872

Flink中常用的算子总结

总结flink中常用的算子 1. keyBy keyBy有两个主要的应用,数据分发,上下游算子异步处理 1.1 数据分发 这个算子作为一个数据分发策略【分发还有还有的策略,例如:reblance(轮询),partitionCustom(自定义)】,根据某个字段作为key进行分组,key相同的会被分到一起,如下图示例,相同颜色的正方形分配到一起。 1.2 异步处理 在DataStream中,经过keyBy后悔编程KeyedStream,这时会将被KeyBy分割的上下游算子 异步计算..

litlit023的专栏 1389

大数据Flink(三十九):​​​​​​​Table与SQL ​​​​​​总结 Flink-SQL常用算子

SELECT 用于从 DataSet/DataStream 中选择数据,用于筛选出某些列。示例:// 取出表中的所有列// 取出表中 name 和 age 两列与此同时 SELECT 语句中可以使用函数和别名,例如我们上面提到的 WordCount 中:

Lansonli(蓝深李)的博客 3074

flink常用基本算子

flink中常用的基本转换算子有:map,flatmap,filter等算子。

mx13156的博客 812

别再手动算考勤了!教你用Python+企业微信API自动生成月度报表

本文介绍如何利用Python和企业微信API构建自动化考勤分析系统,实现从数据获取到可视化报表生成的全流程自动化。通过企业微信打卡接口获取数据,使用Pandas进行高效清洗和分析,并生成Excel和HTML格式的报表,大幅提升考勤统计效率。系统支持智能判定考勤状态,如迟到、早退等,并可通过定时任务实现月度自动化运行。

weixin_27875131的博客 288

flink常用算子介绍

flink任务中【Transformation 数据转换】是对数据进行操作,有 Map、FlatMap、Filter、KeyBy 、Reduce 、Fold 、Aggregations、Window 、WindowAll 、Union 、Window join 、Split 、Select 、Project 等,通过对数据的操作,转换成想要的数据,即是目标数据。KeyBy 在逻辑上是基于 key 对流进⾏分区,相同的 Key 会被分到⼀个分区(这⾥分区指的就是下游算⼦多个并⾏节点的其中⼀个)。

运维仙人 649

MATLAB三元相图实战:从数据准备到高级可视化技巧全解析

本文深入解析了如何使用MATLAB绘制专业的三元相图(ternary plot)。文章从数据归一化、范围映射等预处理技巧入手,详细介绍了散点图、等高线图、凸包计算等高级可视化方法,并提供了多数据集对比与出版级图表美化的实战指南,帮助科研与工程人员高效呈现复杂的三元数据关系。

spark7igniter的博客 257

【专业书1】量化交易——从入门到精通

股票季节性策略几乎失效了,但商品期货的仍有效,因为其季节性需求源于真实的经济需求而非投机。交易策略获利的前提:交易价格处于均值回归(低价时买入)或动量状态(降价时先做空后以更低价买入),否则在随机游走状态下是无法有效交易的。构建交易策略实际上是在决定:在特殊条件、特定时间尺度下价格趋势的呈现(均值回归/趋势走势),以及用什么价格作为初始判断的参考价格。如果以高夏普比率为目标,需要更高的交易频率:基于大数定律,押注越多,偏离均值收益的偏差就越小。买同比最好的股票,卖同比最差的股票。但在不同的时间尺度下可以。

weixin_44589682的博客 1544

Flink 常用算子详解与最佳实践

Flink 的 map、flatMap、filter、keyBy、reduce 等基础算子是流式数据处理的基石。理解它们的原理和适用场景,并结合实际业务需求合理选择与优化,是实现高效、稳定、可扩展流处理应用的关键。对于更复杂的需求,还可以进一步学习窗口(window)、连接(join)、侧输出流(side output)等高级算子的用法。持续学习、实践和关注社区动态,是成长为 Flink 高手的必经之路!

IT技术学习与工作笔记分享 2258

IMU卡尔曼滤波方法详细介绍

本文介绍了基于IMU和卡尔曼滤波的状态估计方法。系统采用9维状态向量(位置、速度、加速度计零偏),通过牛顿运动学建立状态方程,并利用外部位置观测进行校正。详细推导了状态转移矩阵和控制输入矩阵的形式,阐述了预测和更新的计算步骤。同时说明了过程噪声Q和观测噪声R的设置原则,其中Q反映模型不确定性,R取决于传感器精度。该方法可有效融合IMU测量与外部观测数据,实现位置、速度和偏置的联合估计。

haing2019的博客 755

Flink常用算子

文章目录DataStream常用算子1、Map2、FlatMap3、Filter4、KeyBy5、Reduce6、Aggregations7、Window8、WindowAll9、Union10、Window Join11、Split12、Select DataStream常用算子 在 Flink 应用程序中,无论你的应用程序是批程序,还是流程序,都是上图这种模型,有数据源(source),有数据下游(sink),我们写的应用程序多是对数据源过来的数据做一系列操作,总结如下。 Source: 数据源,

糊里糊涂走进大数据的小菜鸡 2527

【人工智能】国产开源大模型聊天 AquilaChat 快速开始上手实战&效果评测

Aquila语言大模型在技术上继承了GPT-3、LLaMA等的架构设计优点,替换了一批更高效的底层算子实现、重新设计实现了中英双语的tokenizer,升级了BMTrain并行训练方法,在Aquila的训练过程中实现了比Magtron+DeepSpeed zero-2将近8倍的训练效率。Aquila语言大模型是在中英文高质量语料基础上从0开始训练的,通过数据质量的控制、多种训练的优化方法,实现在更小的数据集、更短的训练时间,获得比其它开源模型更优的性能。

AI天才研究院 2万+

Ardupilot二次开发(二):自定义mavlivk消息

在下面的文件添加自定义消息的xml定义然后编译固件,会生成相应的消息头文件。

超维空间科技的博客 2312

【flink番外篇】1、flink的23种常用算子介绍及详细示例(完整版)

1、Flink 专栏等系列综合文章链接本文主要介绍Flink 的23种常用的operator及以具体可运行示例进行说明,如果需要了解更多内容,可以在本人Flink 专栏中了解更新系统的内容。 本文除了maven依赖外,没有其他依赖。本专题分为五篇,即: 【flink番外篇】1、flink的23种常用算子介绍及详细示例(1)- map、flatmap和filter 【flink番外篇】1、flink的23种常用算子介绍及详细示例(2)- keyby、reduce和Aggregations 【flink番外篇】

alanchanchn的专栏 6万+

什么是数据挖掘?数据挖掘到底在解决什么问题?

本文我将借助5W1H的思想来带你从整体上了解一下数据挖掘。比如什么是数据挖掘为什么要做数据挖掘在哪些场景下用数据挖掘怎么做数据挖掘第一个问题,什么是数据挖掘?这个问题看似很简单,但似乎也很难有一个明确的答案。如果非要给数据挖掘一个定义的话,那么我认为数据挖掘就是寻找数据中隐含的知识,并用于产生商业价值。也就是说它是我们在数据中,尤其是在大量的数据中找到一些有价值,甚至是非常有价值的东西的一种手段。

m0_64336780的博客 1万+

【flink番外篇】1、flink的23种常用算子介绍及详细示例(1)- map、flatmap和filter

本文主要介绍Flink 的3种常用的operator(map、flatmap和filter)及以具体可运行示例进行说明.将集合中的每个元素变成一个或多个元素,并返回扁平化之后的结果。按照指定的条件对集合中的元素进行过滤,过滤出返回true/符合条件的元素。本文主要介绍Flink 的3种常用的operator及以具体可运行示例进行说明。这是最简单的转换之一,其中输入是一个数据流,输出的也是一个数据流。下文中所有示例都是用该maven依赖,除非有特殊说明的情况。中了解更新系统的内容。中了解更新系统的内容。

alanchanchn的专栏 6万+

AIGC实战——基于Transformer实现音乐生成

Transformer 是最流行的音乐生成技术之一,因为音乐可以视为一个序列预测问题,Transformer 模型将音符视为一个个符号的序列(类似于句子中的单词),从而用于生成音乐。Transformer 模型基于先前音符预测下一个音符,生成音乐作品。在本节中,将学习如何处理音乐数据,并应用 Transformer 生成与给定训练集风格相似的音乐。

盼小辉丶的博客 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

flink常用算子以及window

Flink 窗口种类以及常用算子使用 flink有以下几类窗口: Tumbling Windows 滚动窗口长度固定,滑动间隔等于窗口长度,窗口元素之间没有交叠。 // tumbling event-time windows input .keyBy(<key selector>) .window(TumblingEventTimeWindows.of(Time.sec...

weixin_44889538的博客 960

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【flink番外篇】1、flink的23种常用算子介绍及详细示例(3)-window、distinct、join等

1、Flink 专栏等系列综合文章链接本文主要介绍Flink 的10种常用的operator(window、distinct、join等)及以具体可运行示例进行说明. 如果需要了解更多内容,可以在本人Flink 专栏中了解更新系统的内容。 本文除了maven依赖外,没有其他依赖。本专题分为五篇,即: 【flink番外篇】1、flink的23种常用算子介绍及详细示例(1)- map、flatmap和filter 【flink番外篇】1、flink的23种常用算子介绍及详细示例(2)- keyby、reduce

alanchanchn的专栏 6万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Flink DataStream常用算子

Flink中的算子是将一个或多个DataStream转换为新的DataStream,可以将多个转换组合成复杂的数据流拓扑。 在Flink中,有多种不同的DataStream类型,他们之间是使用各种算子进行的。如下图所示: 以下列举下常用的算子,用到的代码例子都是Flink监听9000端口做为数据源。以下方法可以启动一个9000的socket端口服务。 Linux平台上可以使用 bash nc -...

鸣宇淳的专栏 2万+

【flink番外篇】1、flink的23种常用算子介绍及详细示例(2)- keyby、reduce和Aggregations

基于ReduceFunction进行滚动聚合,并向下游算子输出每次滚动聚合后的结果。max(field)与maxBy(field)的区别: maxBy返回field最大的那条数据;max 和 maxBy 之间的区别在于 max 返回流中的最大值,但 maxBy 返回具有最大值的键, min 和 minBy 同理。本文示例中使用的maven依赖和java bean 参考本专题的第一篇中的maven和java bean。max以第一个比较对象的比较列值进行替换,maxBy是以整个比较对象进行替换。

alanchanchn的专栏 6万+

Flink教程(4) DataStream 常用算子(上)

一、前言 算子会将一个或多个DataStream转换成一个新的DataStream。 在工作中使用最多的也就这些DataStream转换算子,学好这些算子是入门Flink的必要。 好在Flink的某些算子和Java8的lambda函数很像,这便于理解。下面我会先介绍Java的语法,再介绍Flink的语法,由浅入深。 下面可以从图中看到DataStream和不同Stream之间,经过不同算子可以相互转换。 二、Map 2.1 Java Lambda的Map Map对于Stream中包含的元素使用给定的转换函

Java Spring Elasticsearch 1793

5、flink任务中常用的转换算子(Transformation)

使用用户定义的 Partitioner 将元素分发到下游算子的分区中去// 1.获取执行环境/** 功能说明:* 自定义分区器,根据输入的数据获取分区编号* 泛型说明:* @K : key的数据类型* */@Overridereturn 0;return 1;/** 功能说明:* key提取器,根据输入的数据,获取key* 泛型说明:* @IN : 输入数据类型* @KEY : 输出数据类型(key)* */

向热爱自己一样,热爱这个世界。 825
上一篇: Flink1.11 有状态算子的使用
下一篇: flink 1.11 广播状态(Broadcast State)的使用
iFence
博客等级 码龄9年 8051粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值