Pyspark 如何将RDD.groupBy()的结果从(key,[values])展平到(key,values)?

Pyspark 如何将RDD.groupBy()的结果从(key,[values])展平到(key,values)?,pyspark,Pyspark,从键-值对的RDD,如 [(1, 3), (2, 4), (2, 6)] 我想获得元组的RDD,如 [(1, 3), (2, 4, 6)] 其中,每个元组的第一个元素是原始RDD中的键,下一个元素是与原始RDD中的键关联的所有值 我试过这个 rdd.groupByKey().mapValues(lambda x:[item for item in x]).collect() 给 [(1, [3]), (2, [4, 6])] 但这并不是我想要的。我无法“分解”结果每个元组中的项目列表。我

从键-值对的RDD,如

[(1, 3), (2, 4), (2, 6)]
我想获得元组的RDD,如

[(1, 3), (2, 4, 6)]
其中,每个元组的第一个元素是原始RDD中的键,下一个元素是与原始RDD中的键关联的所有值

我试过这个

rdd.groupByKey().mapValues(lambda x:[item for item in x]).collect()

[(1, [3]), (2, [4, 6])]
但这并不是我想要的。我无法“分解”结果每个元组中的项目列表。

我想到的最好方法是

rdd.groupByKey().mapValues(lambda x:[a for a in x]).map(lambda x: tuple([x[0]]+x[1])).collect()
它能变得更紧凑或更高效吗?