spark中reduceByKey用法
时间: 2023-10-01 17:04:54 浏览: 81
浅谈Spark RDD API中的Map和Reduce
`reduceByKey` 是 Spark 中常用的一个转换操作,它对每个 key 对应的 value 进行聚合操作,将相同 key 的 value 聚合在一起,返回一个新的 RDD。
其用法如下所示:
```python
rdd.reduceByKey(func, numPartitions=None, partitionFunc=<function portable_hash>)
```
其中,`func` 是一个聚合函数,它接受两个参数,分别是前一个值和后一个值,返回值是两个值聚合后的结果。`numPartitions` 是分区数,用于指定输出的 RDD 的分区数。`partitionFunc` 是一个用于分区的函数,默认为哈希函数。
下面是一个示例:
```python
# 创建一个包含 key-value 对的 RDD
rdd = sc.parallelize([(1, 2), (3, 4), (3, 6), (4, 5)])
# 对相同 key 的 value 进行相加
result = rdd.reduceByKey(lambda x, y: x + y)
# 输出结果
result.collect()
```
输出结果为:
```
[(1, 2), (3, 10), (4, 5)]
```
在这个例子中,`reduceByKey` 对相同 key 的 value 进行相加,得到了一个新的 RDD,其中每个 key 对应的 value 是原 RDD 中相同 key 的 value 的和。
阅读全文