mar*_*tin 31 performance apache-spark rdd pyspark
在Pyspark中,我可以从列表中创建RDD并确定要有多少分区:
sc = SparkContext()
sc.parallelize(xrange(0, 10), 4)
Run Code Online (Sandbox Code Playgroud)
我决定对RDD进行分区的分区数量如何影响性能?这取决于我的机器核心数量如何?
jav*_*dba 47
主要作用是通过指定太少分区或远分区太多.
分区太少 您将无法使用群集中的所有可用核心.
分区太多管理许多小任务会产生过多的开销.
在这两者之间,第一个对性能影响更大.对于低于1000的分区计数,在此时调度太多小任务是相对较小的影响.如果你有数万个分区的顺序,那么spark变得非常慢.
Chr*_*end 38
为了增加javadba的优秀答案,我记得文档建议将您的分区数设置为群集中CPU核心数的3或4倍,以便在可用的CPU核心中更均匀地分配工作.这意味着,如果群集中每个CPU核心只有1个分区,则必须等待一个运行时间最长的任务才能完成,但如果你进一步将其分解,则工作负载将更加均衡地与快速和慢速运行的任务平衡.
| 归档时间: |
|
| 查看次数: |
26065 次 |
| 最近记录: |