Flink常用API之转换算子的Connect算子

网友投稿 296 2022-11-17

Flink常用API之转换算子的Connect算子

Connect,CoMap,CoFlatMap[DataStream ->ConnectedStream->DataStream] Connect 算子主要是为了合并两种或者多种不同数据类型的数据集,合并后会保留原来 数据集的数据类型。例如:dataStream1 数据集为(String, Int)元祖类型,dataStream2 数据集为 String 类型,通过 connect 连接算子将两个不同数据类型的流结合在一起,形成格式 为 ConnectedStreams 的数据集,其内部数据为[(String, Int), String]的混合数据类型,保 留了两个原始数据集的数据类型。

需要注意的是,对于 ConnectedStreams 类型的数据集不能直接进行类似 Print()的操 作,需要再转换成 DataStream 类型数据集,在 Flink 中 ConnectedStreams 提供的 map()方 法和 flatMap()

package transformationimport org.apache.flink.streaming.api.scala.StreamExecutionEnvironment/** * @Author yqq * @Date 2021/12/26 16:22 * @Version 1.0 */object Transformation01 { def main(args: Array[String]): Unit = { val en = StreamExecutionEnvironment.getExecutionEnvironment en.setParallelism(1) import org.apache.flink.streaming.api.scala._ val stream1: DataStream[(String, Int)] = en.fromElements(("a", 1), ("b", 2), ("C", 3)) val stream2: DataStream[String] = en.fromElements(("a"),("b")) val result: ConnectedStreams[(String, Int), String] = stream1.connect(stream2) //使用CoMapo或CoFlatMap val value: DataStream[(String, Int)] = result.map( //第一个处理函数 t => { (t._1, t._2) }, //第二个函数处理 t => { (t, 0) } ) value.print() en.execute() }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用JPA进行CriteriaQuery进行查询的注意事项
下一篇:创基Type-C分线器以小见大告别尴尬
相关文章

 发表评论

暂时没有评论,来抢沙发吧~