来自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])]
但这不是我想要的。我无法“分解”结果的每个元组中的项目列表。
答案 0 :(得分:1)
rdd.groupByKey()。map(lambda x:(x [0],* tuple(x [1])))。collect()
答案 1 :(得分:0)
我想出的最好的方法是
rdd.groupByKey().mapValues(lambda x:[a for a in x]).map(lambda x: tuple([x[0]]+x[1])).collect()
是否可以使其更紧凑或更有效?