PySpark reduceByKey 对多个值

Posted

技术标签:

【中文标题】PySpark reduceByKey 对多个值【英文标题】:PySpark reduceByKey on multiple values 【发布时间】:2015-06-14 16:02:49 【问题描述】:

如果我有这样的 K,V 对:

(K, (v1, v2))
(K, (v3, v4))

我怎样才能总结出我得到的值 (k, (v1 + v3, v2 + v4))?

【问题讨论】:

【参考方案1】:

reduceByKey 支持函数。假设 A 是键值对的数组。

output = A.reduceByKey(lambda x, y: x[0]+y[0], x[1]+y[1])

【讨论】:

或许应该是output = A.reduceByKey(lambda x, y: (x[0]+y[0], x[1]+y[1]))

以上是关于PySpark reduceByKey 对多个值的主要内容,如果未能解决你的问题,请参考以下文章

IndexError:在pyspark shell上使用reduceByKey操作时列出索引超出范围

PySpark reduceByKey 只有一个键

Pyspark - 在作为列表的 spark 数据框列上使用 reducebykey

reduceByKey PySpark 中的列表列表

如何在pyspark中使用reduceByKey作为多键和单值[重复]

当键的数量少于每个键的值的数量时,PySpark reduceByKey 会继续失败