我正在使用spark来处理大文件,我有12个分区。
我有rdd1和rdd2我在它们之间进行连接,而不是选择(rdd3)。
我的问题是,我咨询过最后一个分区比其他分区太大,从分区1到分区11 45000 recodrs
但是分区12 9100000 recodrs
。
所以我分了9100000 / 45000 =~ 203
。我将我的rdd3重新分配到214(203+11)
但我最后的分区仍然太大了。
我如何平衡分区的大小?
我自己编写自定义分区程序?
答案 0 :(得分:1)
我有rdd1和rdd2我在他们之间进行连接
join
是最昂贵的操作是Spark。为了能够通过键加入,您必须随机播放值,如果键不均匀分布,则会得到描述的行为。在这种情况下,自定义分区程序无法帮助您。
我会考虑调整逻辑,因此不需要完全连接。