https://www.dazhuanlan.com/zara329308/topics/1405081
实验 https://www.coder.work/article/7575250

在 Spark 的 Scala 版本的Dataset API 文档中, 我们可以看到下列跟 repartition 有关的 API

def repartition(numPartitions: Int): Dataset[T]
def repartition(partitionExprs: Column*): Dataset[T]
def repartition(numPartitions: Int, partitionExprs: Column*): Dataset[T]
def repartitionByRange(partitionExprs: Column*): Dataset[T]
def repartitionByRange(numPartitions: Int, partitionExprs: Column*): Dataset[T]

Repartition with Hash

求哈希和求余在 Spark SQL 里面都有相应的函数所以假设表 t 里面的 c1 和 c 列作为 repartition 列,目标 partition 个数设定为 new_part_num Irtition id

select t.*, pmod(hash(c1,c2),new_part_num) as new_part_num from t

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐