当前位置:   article > 正文

Flink数据流类型转换_flink `f0` raw('java.util.map', '...')

flink `f0` raw('java.util.map', '...')

Flink为流处理和批处理分别提供了DataStream API和DataSet API。在开发工作中都是利用这些API进行程序编程。不同DataStream之间转换从而形成stream图。网上Flink1.4流程转换图有点旧,不过也能说明之间的转换关系。
在这里插入图片描述从上面的转换关系可以看出各种不同的流通过operator最后都转换为DataStream。可以从官网查看各个流的转换关系https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/stream/operators/
下面从Transformations角度来说一下。个人觉得可以分两类
1.DataStream和其子类
在这里插入图片描述这些类都包含StreamExecutionEnvironment、StreamTransformation变量和transform方法,KeyedStream只不过多了keySelector变量
2.DataStream为变量类型流BroadcastStream、CoGroupedStreams、ConnectedStreams、AllWindowedStream等等。这些流可以通过不同的operator最终转化为DataStream类型。
比如WindowedStream流就有变量input(KeyedStream)
WindowedStream流生成在这里插入图片描述WindowedStream流的变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述从上面的代码也可以看出最后调用的是input(keyStream)的transform。这样所有的transform操作都统一为DataStream的transform。
注意:由一种类型流转化到另一种类型流,flink代码用很多是用new不是transform方法。比如常用的 DataStream.keyBy操作生成keyStream,只不过传入了this这个变量。同时也说明流不是所有的方法都会transform。只有经过transform方法的操作才能算的上operator,也只有这样才在以后转化成Stream图中有所体现。两者是不一样的。
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/767658
推荐阅读
相关标签
  

闽ICP备14008679号