查找给定 RDD 的每个分区大小的最佳方法是什么。我正在尝试调试倾斜的分区问题,我试过这个:
l = builder.rdd.glom().map(len).collect() # get length of each partition
print('Min Parition Size: ',min(l),'. Max Parition Size: ', max(l),'. Avg Parition Size: ', sum(l)/len(l),'. Total Partitions: ', len(l))
它适用于小型 RDD,但对于较大的 RDD,它会出现 OOM 错误。我的想法是
glom()
导致这种情况发生。但无论如何,只是想知道是否有更好的方法来做到这一点?
最佳答案
用:
builder.rdd.mapPartitions(lambda it: [sum(1 for _ in it)])
关于apache-spark - Spark : Find Each Partition Size for RDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41068112/