我有一个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'(]