如何在pyspark中使用reduceByKey a行

如何在pyspark中使用reduceByKey a行,pyspark,Pyspark,我有一个数据集,如: [A,(1,2)],[B,(3,4)],[A,(5,6] 如何获得输出 [A,(1,2)、(5,6)],[B,(3,4)] 使用Pyspark因为您正在分组,而不是应用函数,所以我认为您需要使用groupByKey() rdd=sc.parallelize([[A],(1,2)],[B],(3,4)],[A],(5,6)]) >>>打印rdd.take(3) [A',(1,2)],[B',(3,4)],[A',(5,6)]] >>>rdd_group=rdd.groupBy

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

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


使用Pyspark

因为您正在分组,而不是应用函数,所以我认为您需要使用groupByKey()

rdd=sc.parallelize([[A],(1,2)],[B],(3,4)],[A],(5,6)]) >>>打印rdd.take(3) [A',(1,2)],[B',(3,4)],[A',(5,6)]] >>>rdd_group=rdd.groupByKey() >>>打印rdd_组。获取(3) [('A',),('B',)] >>>rdd_输出=rdd_组.mapValues(列表) >>>打印rdd_输出。获取(3) [('A',[(1,2)、(5,6)],('B',[(3,4)])]
>>> 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)])]