其余更多java基础文章:
java基础学习(目录)java
这部分能力有限,因此推荐一些大神文章阅读学习:数据库
Spark 建立RDD、DataFrame各类状况的默认分区数:这篇经过实例很是全的测试了各类状况下的默认分区数post
Spark RDD之Partition:这篇经过代码讲解了分区的逻辑、决定partition数量的因素、Partition数量影响及调整。学习
spark中repartition和partitionBy的区别、spark中reparation和coalesce的用法和区别:经过源码讲解repartition,partitionBy,coalesce测试
我在以个人理解简单的归纳下,若有不对,但愿你们及时斧正:spa
spark.default.parallelism
设置sc.defaultParallelism
的值sc.defaultMinPartitions=min(sc.defaultParallelism,2)
。也就是sc.defaultMinPartitions
只有两个值1和2,当sc.defaultParallelism>1时值为2,当sc.defaultParallelism=1时,值为1sc.defaultParallelism
的值partition = max(hdfs文件的block数目, sc.defaultMinPartitions)
,因为sc.defaultMinPartitions只能是1或2。
本地文件
也会像hdfs同样进行相似于block的划分,固定按32M来分片。分区数 = max(本地文件的block数目, 参数值)关系型数据库表
读取的df的分区数为1hive表
建立的DataFrame的分区数,block数为hive表对应的hdfs文件的block的数目,当sc.defaultParallelism大于block时,df的分区是等于sc.defaultParallelism,当小于block时,df的分区数介于sc.defaultParallelism和block之间