Apache spark 火花RDD-KV对的整形

Apache spark 火花RDD-KV对的整形,apache-spark,pyspark,rdd,Apache Spark,Pyspark,Rdd,有没有办法以这种方式重塑spark RDD。基本上与此相反: 假设我有: [['id1', 'v1', 'v2', 'v3', 'v4'], ['id2', 'v1', 'v2', 'v3']] 并且想要: [['id1','v1'], ['id1','v2'], ['id1','v3'], ['id1','v4'], ['id2','v1'], ['id2','v2'], ['id2','v3']] 注意到每行中有不同数量的变量。谢谢,我不知道如何正确引用和循环列表的子集。

有没有办法以这种方式重塑spark RDD。基本上与此相反:

假设我有:

[['id1', 'v1', 'v2', 'v3', 'v4'], ['id2', 'v1', 'v2', 'v3']]
并且想要:

[['id1','v1'],
 ['id1','v2'],
 ['id1','v3'],
 ['id1','v4'],
 ['id2','v1'],
 ['id2','v2'],
 ['id2','v3']]

注意到每行中有不同数量的变量。

谢谢,我不知道如何正确引用和循环列表的子集。
rdd = sc.parallelize([
    ['id1', 'v1', 'v2', 'v3', 'v4'],
    ['id2', 'v1', 'v2', 'v3']
])
rdd2 = rdd.flatMap(lambda x: [[x[0], y] for y in x[1:]])
rdd2.collect()
>>>
[['id1', 'v1'],
 ['id1', 'v2'],
 ['id1', 'v3'],
 ['id1', 'v4'],
 ['id2', 'v1'],
 ['id2', 'v2'],
 ['id2', 'v3']]