spark中RDD分区决定参数
# map端task的数量与RDD的分区数是一致的
spark.default.parallelism = max(所有executor使用的core总数,2)
spark.files.maxPartitionBytes = 128 M (默认) 每个分区的最大字节数
sc.defaultParallelism = spark.default.parallelism
sc.defaultMinPartitions = min(spark.default.parallelism,2)
# 不同数据源的RDD分区个数
1) 集合-RDD分区数 = sc.defaultParallelism
2) 本地文件-RDD分区数 = max(文件的切片数 ,sc.defaultMinPartitions)
3) hdfs文件-RDD分区数 = max(文件的block数目 ,sc.defaultMinPartitions)
4) hive-RDD分区数 = max(文件的block数目 ,sc.defaultMinPartitions)
5) hbase-RDD分区数 = region的个数
6) kafka-kafka topicPartition的数目
# reduce端task的数量
可用通过reducebykey这样的算子指定
mapstage的最后一个rdd的分区数