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

加内什

Flink的Dataset API中有各种分区功能,例如partitionByHashpartitionByRange

我想首先了解什么是分区,groupBy以及分区之间的区别

费边·韦斯克(Fabian Hueske)

分区是比其更底层的操作groupBy,并且不对数据应用任何功能。而是定义如何在并行任务实例之间分配数据。可以使用不同的方法对数据进行分区,例如哈希分区或范围分区。

groupBy本身不是一项操作。它总是需要被所分组的应用的功能DataSet,例如reducegroupReduce,或groupCombinegroupByAPI定义了如何给他们到相应的函数之前的记录进行分组。记录分组分为两个步骤。

  1. 具有相同分组键的所有记录都必须移至相同的任务实例。这是通过对数据进行分区来完成的。由于通常有比任务实例更多的不同分组关键字,因此任务实例必须处理具有不同分组关键字的记录。
  2. 同一任务实例中的所有记录必须在键上分组。通常通过对数据进行排序来完成。

因此,第一步groupBy是分区。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

使用Apache Flink中的DataSet API在每次迭代之前计算变量

Apache Flink:如何从Cassandra读取DataStream / DataSet?

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

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

Apache Flink-DataSet API-如何将n个结果分组在一起

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

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

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

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

在Apache Flink中进行字数统计的以下方法之间有什么区别?

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

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

Flink中StreamExecutionEnvironment和StreamTableEnvironment有什么区别

Flink中window和timewindow有什么区别

Apache Flink:无法将 Table 对象转换为 DataSet 对象

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

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

Apache flume和Apache Storm有什么区别?

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

Apache Flink的JoinFunction和CoGroupFunction有何区别?

Apache Flink中的并行度

Apache Flink中的全局排序

Apache Flink中的重叠分区

Apache Flink中Join的输出

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

Apache Flink 中的窗口和状态

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