2017-08-07 55 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上的文件数量。

如果有人知道为什么会发生这种事情,我会很乐意将你标记为答案。