Pyspark-将RDD转换为键值对RDD,键按升序排列



我有一个RDD1,其形式如下:['once','upon','a','time',...,'the','end']。我想转换成一个键/值对,这样字符串就是值,键是按升序排列的。预期的RDD2应如下所示:[(1,'once'),(2,'upon'),(3,'a'),(4,'time'),...,(RDD1.count()-1,'the'),(RDD1.count(),'end']有什么提示吗?感谢

使用pyspark自己的zip函数。这可能会有所帮助:

rdd1 = sc.parallelize(['once','upon','a','time','the','end'])
nums = sc.parallelize(range(rdd1.count())).map(lambda x: x+1)
zippedRdds = nums.zip(rdd1)
rdd2 = zippedRdds.sortByKey()
rdd2.collect()

将给出:

[(1,'once'(,(2,'ony'(,[(3,'a'(,'(4,'time'(,](5,'the'(,'end'(]

最新更新