Python 使用PySpark将RDD划分为两个或多个公平的RDD
我正在使用PySpark,我正在寻找一种将RDD划分为n个部分的方法。鉴于:Python 使用PySpark将RDD划分为两个或多个公平的RDD,python,apache-spark,pyspark,rdd,partitioning,Python,Apache Spark,Pyspark,Rdd,Partitioning,我正在使用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
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()
这给了我两个不公平的RDD。
len(重新分配的集合()[0])给出了:2和len(重新分配的集合()[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作为长度。。谢谢 也许您对随机拆分(Weights,seed)感兴趣,即: 使用提供的权重拆分此RDD
它将返回一个RDD列表 @Avihoo-Mamka-Thx但没有答案:(有一个关于文件数量的解释。你是否在大量文件上尝试过,并得到了同样不公平的RDD?