PySpark 数据帧重新分区

数据挖掘 阿帕奇火花 pyspark
2021-10-13 06:49:58

当我们基于列对 PySpark 数据帧进行重新分区时会发生什么。例如

dataframe.repartition('id')

这是否会将具有相似分区的数据移动'id'到同一分区?该值如何spark.sql.shuffle.partitions影响重新分区?

1个回答

的默认值为spark.sql.shuffle.partitions200,并配置在为连接或聚合打乱数据时使用的分区数。

dataframe.repartition('id')根据 Hash Partitioner 创建 200 个 ID 分区。具有相同 ID 的 Dataframe Row 总是进入同一个分区。如果某些 ID 上有 DataSkew,您最终会得到大小不一致的分区。