【发布时间】:2021-08-04 23:27:53
【问题描述】:
我想比较不同并行度的 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 尝试了我的应用程序,运行时间仅比number_of_partitions = 1 快1 分钟!而且我认为不可能....当并行度为 1 时,我预计运行时间会很大。当然number_of_partitions = 1 在分布式环境中没有意义,但是当我得到几乎相同的运行时间时number_of_partitions = 16, 32, 64.
有什么想法吗?
【问题讨论】:
-
你能不能提一下你在做什么?我的意思是转变和行动
-
您的工作性能主要取决于您正在执行的数据和转换,而不是单个配置。你能展示你的代码并解释你的数据是什么样的吗?
-
这是一项大型工作,我使用多个操作和动作,但作为总结:加载数据,使用
kFold拆分数据,应用 mllib RF 算法等但是你告诉我没有修复所需的并行度的方法?我想我误解了这个概念,因为我想比较不同数量的分区或内核的运行时,看看如果我添加更多资源会变得多快