火花数据集上的 GroupbyKey

GroupbyKey on spark dataset

groupByKey 是否会导致网络中所有值的混洗,即使它们已经位于一个分区内,当我们在 sparkSQL 中进行分组操作时,它是使用 groupbykey 还是使用 aggregateByKey 来提高性能?

如果键都位于每个分区内,

groupByKey 将不会随机播放数据。但那将是一种罕见的情况。

sparkSQL 中的

groupBy 操作是一个 aggregateByKey,这使其成为聚合操作。我们可以在sparkSQL中的groupBy之后定义聚合函数。 groupBy 只需为每个组和每个聚合创建一个 Aggregation Expressions 实例,然后遍历数据并不断更新这些表达式