PySpark实战:fold操作
来自CloudWiki
介绍
fold操作是一个变换算子,
它的作用是对RDD每个元素按照func定义的逻辑进行处理
func包含两个参数a,b,其中a的初始值为value,后续代表累计值,b代表当前元素值
代码
import findspark findspark.init() ############################################## from pyspark.sql import SparkSession spark = SparkSession.builder \ .master("local[1]") \ .appName("RDD Demo") \ .getOrCreate(); sc = spark.sparkContext ############################################# ret=sc.parallelize([1, 2, 3, 4, 5]).fold(0, lambda x,y:x+y) #15 print(ret) ret=sc.parallelize([1, 2, 3, 4, 5]).fold(1, lambda x,y:x*y) #120 print(ret) ############################################## sc.stop()
func包含两个参数a,b,其中a的初始值为value,后续代表累计值,b代表当前元素值
当遍历元素1时,此时x=0,y=1,返回x+y=1;
当遍历元素2时,此时x=1,y=2,返回x+y=3;
当遍历元素3时,此时x=3,y=3,返回x+y=6
输出
15
120