PySpark实战:coalesce操作
来自CloudWiki
介绍
coalesce操作是一个变换算子,
主要作用是将RDD进行重新分区。
调用形式为rdd.coalesce(numPartitions,[isShuffle=False])
其中numPartitions参数是一个整形,比如2
而isShuffle参数是一个可选的值,默认值为False,如果设置为True ,则代表重新分区过程中进行混洗(shuffle)操作。
用途
在实际计算过程中,可以设置一个比较合理的分区数,从而提高计算效率
代码
import findspark findspark.init() ############################################## from pyspark.sql import SparkSession spark = SparkSession.builder \ .master("local[1]") \ .appName("RDD Demo") \ .getOrCreate(); sc = spark.sparkContext ############################################# rdd=sc.parallelize([1, 2, 3, 4, 5], 3).glom() #[[1], [2, 3], [4, 5]] print(rdd.collect()) #[[[1], [2, 3], [4, 5]]] print(rdd.coalesce(1).glom().collect()) rdd2 = sc.parallelize([1, 2, 3, 4, 5, 6], 3).coalesce(1,True) #[1, 2, 3, 4, 5, 6] print(rdd2.collect()) ############################################## sc.stop()
输出
[[1], [2, 3], [4, 5]] [[[1], [2, 3], [4, 5]]] [1, 2, 3, 4, 5, 6]