2017-08-07 52 views
0

我的理解是spark會根據文件的大小或者它是否包含多個parquet文件的聯合來選擇「默認」數量的分區數量。按實例類型劃分的默認分區差異

但是,在閱讀一組大型鑲木地板文件時,我發現一個d2.2xlarge的EMR集羣的默認分區數爲1200。然而,在一個2 r3.8xlarge的集羣中,我得到了〜4700的默認分區。

Spark使用哪些指標來確定默認分區?

EMR 5.5.0

回答

0

spark.default.parallelism - 在由like加盟,reduceByKey,當不能由用戶設置並行轉換返回RDDS分區的默認號碼。

2個可用於YARN容器的CPU內核數量。

http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-configure.html#spark-defaults

Looks like it matches non EMR/AWS Spark as well

+0

我認爲這隻適用於你做類似sc.parallelize()的事情,而不是當你從s3閱讀時。或者,如果單個文件很大,它也會將其拆分。 –

0

我覺得有一些短暫的問題,因爲我重新啓動該EMR集羣d2.2xlarge,它給了我,我預計分區的數量,這相匹配的r3.8xlarge ,這是s3上的文件數量。

如果有人知道爲什麼會發生這種事情,我會很樂意將你標記爲答案。