data.rdd.getNumPartitions() # 输出 2456
然后我执行data.rdd.repartition(3000)
但是data.rdd.getNumPartitions()
# 输出仍然是 2456
如何更改分区数量?一种方法是先将数据框转换为RDD,重新分区,然后再将RDD转换回数据框。但这需要很多时间。另外,增加分区数量是否能使操作更加分布式,从而更快?谢谢
回答:
您可以检查分区数量:
data.rdd.partitions.size
要更改分区数量:
newDF = data.repartition(3000)
您可以检查新的分区数量:
newDF.rdd.partitions.size
请注意,重新分区时会发生数据洗牌,这是一项昂贵的操作。如果需要,请考虑使用coalesce
。