首页 > 解决方案 > 针对不同的并行度运行 Spark 作业

问题描述

我想比较不同并行度的 Spark 作业的运行时间,以分析添加更多并行度是否更快。问题是我认为我可以通过在创建 Spark 会话时更改以下内容来做到这一点:

 val spark = SparkSession.builder
      .master(master)
      .appName(name)
      .config(conf)
      .config("spark.default.parallelism", number_of_partitions) // this is the value I change

但我已经尝试过我的应用程序,number_of_partitions = 256运行时间仅比 ! 快 1 分钟number_of_partitions = 1!而且我认为不可能....当并行度为 1 时,我预计运行时会很大。当然,number_of_partitions = 1在分布式环境中没有意义,但是当number_of_partitions = 16, 32, 64.

有任何想法吗?

标签: apache-sparkscalability

解决方案


MLLib 建立在 DataFrame API 之上。这里的并行度由和等参数控制。spark.files.maxPartitionBytesspark.sql.shuffle.partitions

spark.default.parallelism用于控制使用 RDD API 时的并行性)。


推荐阅读