Apache Flink的JoinFunction和CoGroupFunction有何区别?

Jary zhen

Apache Flink中aJoinFunction和a有什么区别CoGroupFunction语义和执行方式有何不同?

费边·韦斯克(Fabian Hueske)

Join和CoGroup转换都将关键字段上的两个输入联接在一起。不同之处在于用户函数的调用方式:

  • Join转换从两个输入调用JoinFunction具有一对匹配记录的键,这些记录具有相同的键字段值。此行为与相等内部联接非常相似。
  • CoGroup转换在键字段具有相同值的两个输入的所有记录上调用CoGroupFunctionwith迭代器如果输入没有某个键值的记录,则传递一个空的迭代器。CoGroup转换尤其可以用于内部和外部相等联接。因此,它比Join转换更通用。

查看Join和CoGroup的执行策略,可以使用基于排序和哈希的联接策略执行Join,而因为CoGroup始终使用基于排序的策略执行。因此,连接通常比联合组更有效,如果可能的话,应该首选联接。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

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

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

Apache Flink中DataStream和Table API之间的区别

Apache Flink中shuffle()和rebalance()之间的区别

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

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

Apache flume和Apache Storm有什么区别?

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

Apache Beam和Apache Nifi之间的区别

Apache Tapestry和Apache Wicket之间的区别

Esper 和 Apache Storm 的区别?

Apache Flink-检查点和保存点之间的区别?

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

Apache Ignite和Tachyon有什么区别

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

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

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

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

Apache Camel和JBoss Fuse有什么区别?

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

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

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

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

apache Ambari Server和Agent有什么区别

apache cordova和ionic有什么区别?

Apache Impala和Cloudera Impala有什么区别?

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