2017-07-28 64 views
0

我正在使用spark来处理大文件,我有12个分区。 我有rdd1和rdd2我做了他们之间的连接,比选择(rdd3)。 我的问题是,我咨询了最后一个分区比其他分区太大,从分区1到分区但分区12 9100000 recodrs。 所以我分9100000/45000 =~ 203。我重新分区我的rdd3到214(203+11) 但我最后一个分区仍然太大。 我如何平衡我的分区的大小?用火花指定分区大小

我写我自己的自定义分区程序?

+0

是'repartition'和'partitionBy' –

+0

您能否详细说明您尝试了什么,以及您得到的反馈表明他们没有工作? –

+0

也请包括代码,以便我们可以看到在此过程中您正在重新分区。 –

回答

1

我有RDD1集和RDD2我做一个加入他们

join之间

是最昂贵的操作的火花。为了能够通过键连接,你必须对值进行混洗,并且如果键不是均匀分布的,你会得到描述的行为。在这种情况下,自定义分区程序不会帮助你。

我会考虑调整逻辑,所以它不需要完全加入。