Pyspark 如何将RDD.groupBy()的结果从(key,[values])展平到(key,values)?
从键-值对的RDD,如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])] 但这并不是我想要的。我无法“分解”结果每个元组中的项目列表。我
[(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()
它能变得更紧凑或更高效吗?