reduceByKey自动对传入数据进行分组(通过key),并且对组内数据进行聚合(运算)。
【运行实例】:
from pyspark import SparkConf, SparkContext
import os
os.environ["PYSPARK_PYTHON"]="D:/python_set/py_run/python.exe"
conf=SparkConf().setMaster("local[*]").setAppName("run_set")
sc = SparkContext(conf=conf)
# 传入二元元组,第一个元素被定义为key,第二个元素被定义为value,所以这种形式的数据也被称为kv型数据
"""自动进行分组,并且对组内进行聚合"""
rdd = sc.parallelize([("x", 1), ("y", 2), ("y", 5), ("z", 8), ("z", 3), ("x", 4)])
rdd = rdd.reduceByKey(lambda x, y: x+y)
print(rdd.collect())
sc.stop()