如何在pyspark中使用reduceByKey

时间:2017-05-22 10:23:44

标签: pyspark

我有一个类似的数据集: [A,(1,2)],[B,(3,4)],[A,(5,6)]

如何获得输出 [A,(1,2),(5,6)],[B,(3,4)]

使用Pyspark

1 个答案:

答案 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)])]