其餘更多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之間