Pyspark python:使用if条件语句按键缩减?
如果第一个值是some或equal,那么我如何对键的值求和,从而得到(k1,(v1,v2+v5),(k2,(v3,v4+v6)?IIUC,您需要在Pyspark python:使用if条件语句按键缩减?,pyspark,rdd,reduce,Pyspark,Rdd,Reduce,如果第一个值是some或equal,那么我如何对键的值求和,从而得到(k1,(v1,v2+v5),(k2,(v3,v4+v6)?IIUC,您需要在reduce之前更改键,然后将值映射回所需格式 您应该能够执行以下操作: new_rdd=rdd.map(lambda行:((行[0],行[1][0]),行[1][1]))\ .reduceByKey(总和)。 .map(lambda行:(行[0][0],(行[0][1],行[1])) 什么是“some”或“equale”呢?您的输出看起来像是要创建一
reduce
之前更改键,然后将值映射回所需格式
您应该能够执行以下操作:
new_rdd=rdd.map(lambda行:((行[0],行[1][0]),行[1][1]))\
.reduceByKey(总和)。
.map(lambda行:(行[0][0],(行[0][1],行[1]))
什么是“some”或“equale”呢?您的输出看起来像是要创建一个新的键,即旧键加上第一个值。使用映射
函数应该很容易。
(K1, (v1, v2))
(K2, (v3, v4))
(K1, (v1, v5))
(K2, (v3, v6))