我有一个类似的数据集: [A,(1,2)],[B,(3,4)],[A,(5,6)]
如何获得输出 [A,(1,2),(5,6)],[B,(3,4)]
使用Pyspark
答案 0 :(得分:0)
由于您正在分组并且您没有应用功能,我认为您需要使用 groupByKey()
>>> rdd = sc.parallelize([["A",(1,2)],["B",(3,4)],["A",(5,6)]])
>>> print rdd.take(3)
[['A', (1, 2)], ['B', (3, 4)], ['A', (5, 6)]]
>>> rdd_group = rdd.groupByKey()
>>> print rdd_group.take(3)
[('A', <pyspark.resultiterable.ResultIterable object at 0x7f5f53fa1c90>), ('B', <pyspark.resultiterable.ResultIterable object at 0x7f5f53fa1790>)]
>>> rdd_output = rdd_group.mapValues(list)
>>> print rdd_output.take(3)
[('A', [(1, 2), (5, 6)]), ('B', [(3, 4)])]