apache-spark - 针对不同的并行度运行 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
.
有任何想法吗?
解决方案
MLLib 建立在 DataFrame API 之上。这里的并行度由和等参数控制。spark.files.maxPartitionBytes
spark.sql.shuffle.partitions
(spark.default.parallelism
用于控制使用 RDD API 时的并行性)。
推荐阅读
- python - 使用需要更多参数的 _init_ 嵌入自定义 RNN 单元(3 vs 1)
- c# - 使用 .NET Core 2.2 通过 HttpContext 访问 AD 用户
- javascript - 在循环中多次覆盖元素的样式?
- ios - 错误:方法不会覆盖其超类中的任何方法
- owasp - 如何在 OWASP Zap (GUI) 自动攻击中指定 URL 参数
- python - 转换表以平滑一列中的记录
- android-studio - 无法在 Android Studio 中的“FileMapping”中打开库
- mongodb - Mongodbd 使用 Mongoose 登录到新数据库
- ios - 将 ios13.1 升级到 13.2 的问题 - NavigationLink - 试图弹出到不存在的视图控制器
- python - if语句中的Python生命变量