Spark:查找 RDD 的每个分区大小 [英] Spark: Find Each Partition Size for RDD

查看:39
本文介绍了Spark:查找 RDD 的每个分区大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

找到给定 RDD 的每个分区大小的最佳方法是什么.我正在尝试调试偏斜的分区问题,我已经尝试过:

What's the best way of finding each partition size for a given RDD. I'm trying to debug a skewed Partition issue, I've tried this:

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() 导致这种情况发生.但无论如何,只是想知道是否有更好的方法来做到这一点?

It works fine for small RDDs, but for bigger RDDs, it is giving OOM error. My idea is that glom() is causing this to happen. But anyway, just wanted to know if there is any better way to do it?

推荐答案

使用:

builder.rdd.mapPartitions(lambda it: [sum(1 for _ in it)])

这篇关于Spark:查找 RDD 的每个分区大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆