gpt4 book ai didi

python - PySpark:迭代 PairRDD 中的值

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:57 24 4
gpt4 key购买 nike

如何在 RDD(key,value) 中迭代一个值。

tsRDD.map(lambda x:(x,1)).groupByKey()

返回

[('abc', <pyspark.resultiterable.ResultIterable object at 0xb0e8242c>),
('pqr', <pyspark.resultiterable.ResultIterable object at 0xb0e82a2c>),
('xyz', <pyspark.resultiterable.ResultIterable object at 0xb0e824ac>)]

我想遍历 <pyspark.resultiterable.ResultIterable对象并找到它所有元素的总和。

我试过了

tsRDD.map(lambda x:(x,1))).countByKey().items()

返回

`[('abc', 2), ('pqr', 1), ('xyz', 2)]`

但我需要使用 .map .reduceByKey()方法

有什么想法吗?或者我们可以做的变化?

最佳答案

在这种特殊情况下,您可以做的最有效的事情是使用 reduceByKey而不是 groupByKey:

tsRDD.map(lambda x:(x, 1)).reduceByKey(lambda x, y: x + y)

在一般情况下,当您拥有 PairwiseRDD 时,您可以 map

# Python 2
someRDD.map(lambda (k, vs): do_something_with(vs))

# Python 3
someRDD.map(lambda kvs: do_something_wit(kvs[1]))

mapValues:

someRDD.mapValues(lambda vs: do_something_with(vs))

关于python - PySpark:迭代 PairRDD 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com