热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flink,join,coGroup,connect,union的区别、使用和实

join:1可用于DataStream和DataSet。只能2个DataStream一起join,或者2个DataSet一起join2用于DataS

join:

1 可用于DataStream和DataSet。只能2个DataStream一起join,或者2个DataSet一起join

2 用于DataStream时返回是JoinedStreams  ,用于DataSet时返回是JoinOperatorSets  

3 用于DataStream时需要与窗口同时使用,语法是:join where equalTo window apply ,用于DataSet时的语法是:join where equalTo with (where是指定第一个输入的分区字段,equalTo是指定第二个输入的分区字段,这2个字段类型需要一致)

4 与SQL中的inner join同义,只输出2个实时窗口内或2个数据集合内能匹配上的笛卡尔积,不能匹配上的不输出。

5 apply方法中或with方法中均可以使用JoinFunction或 FlatJoinFunction处理匹配上的数据对(用于DataStream和DataSet时均可)

6 侧重对2个输入里的 数据对 进行处理,join方法的入参是单个数据

7 可以join2个类型不同的流或join2个类型不同的数据集(比如Tuple2 join Tuple2),但是匹配的key或field类型要一致,不然报错(比如where中的String与equalTo中的String匹配才行)

Flink,join双流,join实例,java版本

Flink,join DataSet数据集,join实例,java版本


coGroup:

1 可用于DataStream和DataSet。只能2个DataStream一起coGroup,或者2个DataSet一起coGroup

2 用于DataStream时返回是CoGroupedStreams,用于DataSet时返回是CoGroupOperatorSets

3 用于DataStream时需要与窗口同时使用,语法是:coGroup where equalTo window apply ,用于DataSet时的语法是:coGroup where equalTo with,

4 把2个实时窗口内或2个数据集合内key相同的数据分组同一个分区,key不能匹配上的数据(只在一个窗口或集合内存在的数据)也分组到另一个分区上。

5 apply方法中或with方法中均可以使用CoGroupFunction对数据分组(用于DataStream和DataSet时均可,无FlatCoGroupFunction)

6 侧重对2个输入的 集合 进行处理,coGroup方法的入参是Iterable类型

7 可以coGroup2个类型不同的流或coGroup2个类型不同的数据集(比如Tuple2 join Tuple2),但是匹配的key或field类型要一致,不然报错(比如where中的String与equalTo中的String匹配才行)

Flink,coGroup双流,coGroup实例,java版本

Flink,coGroup DataSet数据集,coGroup实例,java版本


connect:

1 只能用于DataStream,返回是ConnectedStreams。不能用于DataSet.

2 只能2个流一起connect(stream1.connect(stream2))

3 connect后可以对2个流分别处理(使用CoMapFunction或CoFlatMapFunction)

4  可以connect2个类型不同的流(比如Tuple2 connect Tuple2)

Flink,connect双流,connect实例,java版本


union:

1 用于DataStream时,返回是Datastream;用于DataSet时,返回是DataSet;

2 可以多个流一起合并(stream1.union(stream2,stream3,stream4)),合并结果是一个新Datastream;只能2个DataSet一起合并,合并结果是一个新DataSet

3 无论是合并Datastream还是合并DataSet,都不去重,2个源的消息或记录都保存。

4 不可以union 2个类型不同的流或union 2个类型不同的数据集

Flink,union双流,union实例,java版本

Flink,union DataSet数据集,union实例,java版本

---------------------------------更多精辟的见解可见下方----------------------------------

0:

 


推荐阅读
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 在尝试对 QQmlPropertyMap 类进行测试驱动开发时,发现其派生类中无法正常调用槽函数或 Q_INVOKABLE 方法。这可能是由于 QQmlPropertyMap 的内部实现机制导致的,需要进一步研究以找到解决方案。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 本文详细解析了一种实用的函数,用于从URL中提取查询参数。该函数通过处理URL中的搜索部分,能够高效地获取并解析出所需的参数值,适用于各种Web开发场景。 ... [详细]
  • 如何使用 `org.eclipse.rdf4j.query.impl.MapBindingSet.getValue()` 方法及其代码示例详解 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
  • 本文将继续探讨 JavaScript 函数式编程的高级技巧及其实际应用。通过一个具体的寻路算法示例,我们将深入分析如何利用函数式编程的思想解决复杂问题。示例中,节点之间的连线代表路径,连线上的数字表示两点间的距离。我们将详细讲解如何通过递归和高阶函数等技术实现高效的寻路算法。 ... [详细]
  • 本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。 ... [详细]
  • 本文深入探讨了Ajax的工作机制及其在现代Web开发中的应用。Ajax作为一种异步通信技术,改变了传统的客户端与服务器直接交互的模式。通过引入Ajax,客户端与服务器之间的通信变得更加高效和灵活。文章详细分析了Ajax的核心原理,包括XMLHttpRequest对象的使用、数据传输格式(如JSON和XML)以及事件处理机制。此外,还介绍了Ajax在提升用户体验、实现动态页面更新等方面的具体应用,并讨论了其在当前Web开发中的重要性和未来发展趋势。 ... [详细]
author-avatar
只是遇不到他_740
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有