使用PySp将RDD划分为两个或多个公平的RDD

2024-09-30 14:22:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用PySpark,并在寻找一种将RDD划分为n个公平部分的方法。给予:

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'))])

这是我的代码:

^{pr2}$

这给了我两个不公平的RDD。 len(重新划分_rdd.托收()[0])给出:2和len(重新分区_rdd.托收()[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'))]]

什么是最有效的方法来获得结果两个公平部分(RDD),3和3作为长度。。谢谢!在


Tags: 方法len公平pysparkguidscrddmuqh