Apache Flink:数据输出API中的副输出和split()有什么区别?

雷扎·萨梅艾(Reza Same'ei)

Apache Flink具有一个splitAPI,可用于分支数据流:

val splited = datastream.split { i => i match {
   case i if ... => Seq("red", "blue")
   case _ => Seq("green")
}}

splited.select("green").flatMap { .... }

它还提供了另一种称为Side Output的方法(https://ci.apache.org/projects/flink/flink-docs-release-1.5/dev/stream/side_output.html),使您可以执行相同的操作!

这两种方式有什么区别?他们是否使用相同的较低层结构?它们的价格一样吗?我们何时以及如何选择其中之一?

费边·韦斯克(Fabian Hueske)

split自成立以来,操作员便是DataStream API的一部分。侧面输出功能将在以后添加,并提供split的功能的超集

split创建多个相同类型(输入类型)的流。侧面输出可以是任何类型,即也可以不同于输入和主输出。

在内部,split添加仅用于分割流的专用运算符。侧面输出是在运算符(通常是ProcessFunction或窗口运算符)中定义的,该运算符应用任意逻辑并具有多个输出。我不希望这会导致明显的性能差异。

侧面输出的一个常见用例是过滤掉无效(或较晚)的记录,并将它们未经修改地传递给侧面,例如,稍后再处理它们。这样的运算符具有期望结果类型的常规输出和输入类型的侧面输出。使用来实现该逻辑会很麻烦split

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Apache Flink:DataSet API中的groupBy和partitioning有什么区别?

Apache Flink中的定期水印和标点水印有什么区别?

Apache Spark中的forEachAsync和forEachPartitionAsync有什么区别?

Apache Spark中的join和cogroup有什么区别

Apache Tiles中的insertDefinition和importAttribute有什么区别?

Apache Royale中的id和localId有什么区别?

Apache Flink中Join的输出

apache HttpClient API中的setConnectionTimeout,setSoTimeout和“ http.connection-manager.timeout”有什么区别

Apache HttpClient API中的CloseableHttpClient和HttpClient有什么区别?

OSGi:Apache Felix和Apache Karaf有什么区别?

Apache Mahout和Apache Spark的MLlib有什么区别?

Apache flume和Apache Storm有什么区别?

Apache Web Server和Apache HTTPD有什么区别?

String类中的split方法与Apache StringUtils中的split方法有什么区别?

具有 groupId `org.apache.bahir` 和 `org.apache.flink` 的两个 Flink Redis 接收器依赖项之间有什么区别?

Red Hat AMQ和Apache ActiveMQ有什么区别?

Apache Ignite和Tachyon有什么区别

Apache Commons Bag和Guava MultiSet有什么区别?

Apache Mesos,Mesosphere和DCOS有什么区别?

Apache Karaf 2和3之间有什么区别?

Apache Camel和JBoss Fuse有什么区别?

Apache Beam:DoFn和SimpleFunction有什么区别?

Apache的Mesos和Google的Kubernetes有什么区别

apache Ambari Server和Agent有什么区别

apache cordova和ionic有什么区别?

Apache Impala和Cloudera Impala有什么区别?

apache2和httpd有什么区别?

apache-flink:输出中的滑动窗口

在Apache Spark中,使用mapPartitions和结合使用广播变量和map有什么区别?