赞
踩
在使用repartition()时出现下述问题:
- print(rdd.getNumPartitions())
- rdd.repartition(100)
- print(rdd.getNumPartitions())
两次打印的结果相同
产生上述问题的原因有两个:
首先 repartition()是惰性求值操作,需要执行一个action操作才可以使其执行。
其次,repartition()操作会返回一个新的rdd,并且新的rdd的分区已经修改为新的分区数,因此必须使用返回的rdd,否则将仍在使用旧的分区。
修改为:
rdd2 = rdd.repartition(100)
参考:
https://stackoverflow.com/questions/31508345/repartition-is-not-affecting-rdd-partition-size
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。