在 spark SQL 中按 vs 集群分布
Distribute by vs Cluster by in spark SQL
我最近开始研究 spark,我们总是在加入之前使用 cluster by 来优化表,但我想知道在任何情况下我们更喜欢 distribution by cluster by 子句。
聚类依据和分布依据之间的唯一区别是
分布依据仅根据表达式对数据进行重新分区,而聚类依据首先对该数据进行重新分区,然后根据每个分区中的键对数据进行排序。
dataframe api 中 cluster by 和 distribution by 的等价表示如下:
分发者
df.repartition($"key", 2)
聚类依据
df.repartition($"key", 2).sortWithinPartitions()
除了cluster by有额外的排序操作外,都涉及到shuffle操作。
我最近开始研究 spark,我们总是在加入之前使用 cluster by 来优化表,但我想知道在任何情况下我们更喜欢 distribution by cluster by 子句。
聚类依据和分布依据之间的唯一区别是 分布依据仅根据表达式对数据进行重新分区,而聚类依据首先对该数据进行重新分区,然后根据每个分区中的键对数据进行排序。
dataframe api 中 cluster by 和 distribution by 的等价表示如下: 分发者
df.repartition($"key", 2)
聚类依据
df.repartition($"key", 2).sortWithinPartitions()
除了cluster by有额外的排序操作外,都涉及到shuffle操作。