-1
我正在使用PySpark,并且正在寻找一种将RDD划分为n个公平部分的方法。鉴于:使用PySpark将RDD分区为两个或多个公平的RDD
rdd = sc.parallelize ([(u'28b195c271f', (u'm', u'50c41480')),
(u'_guid_UDeL9', (u'f', u'K0r_MuQH')),
(u'17503716353', (u'f', u'KUDRwaYm')),
(u'171f92200d6', (u'f', u'bdf53cb6')),
(u'_guid_NCw7S', (u'f', u'KSJakOd2')),
(u'331d8410d49', (u'f', u'1F37807A'))])
这是我的代码:
N = 2
repartionned_rdd = rdd.repartition(N).distinct().glom()
这是给我两个不公平RDDS。 len(repartionned_rdd.collect()[0])给出:2和len(repartionned_rdd.collect()[1])给出4!结果:
[[(u'28b195c271f', (u'm', u'50c41480')),
(u'_guid_UDeL9', (u'f', u'K0r_MuQH'))],
[(u'17503716353', (u'f', u'KUDRwaYm')),
(u'171f92200d6', (u'f', u'bdf53cb6')),
(u'_guid_NCw7S', (u'f', u'KSJakOd2')),
(u'331d8410d49', (u'f', u'1F37807A'))]]
什么是有作为的结果2个公正部分(RDDS),3和3 lenght .. THX的最有效的方法!
http://stackoverflow.com/questions/38102013/how-to-repartition-evenly-in-spark –
@Avihoo Mamka Thx但没有答案:( – DataAddicted
有一个关于文件数量的解释。你在大量的文件上尝试,并得到相同的不公平的rdds? –