如何解决随机分区大于200时会发生什么数据帧中的spark.sql.shuffle.partitions 200默认情况下
spark sql聚合操作,可对数据进行混洗,即spark.sql.shuffle.partitions 200(默认情况下)。随机分区大于200时性能会发生什么变化。
当分区数大于2000时,Spark使用不同的数据结构进行随机记录簿记。因此,如果分区数接近2000,则将其增加到2000以上。
但是我的问题是,当随机分配分区大于200(假设为300)时,行为将如何?
解决方法
根据相对大型集群上的典型工作负荷(为作业分配了足够的资源),将数字200作为默认值。否则,应根据两个因素选择此数目-可用内核数和分区大小(建议将分区保持在100Mb附近)。所选分区数应为可用内核数的倍数,但不应太大(通常为内核数的1-3 x)。如果分区数大于默认值,则不应更改Spark的行为-只会增加Spark需要执行的任务数。
您可以观看this talk from Spark + AI Summit 2019-它涵盖了许多有关Spark程序优化的详细信息,包括分区数量的选择。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。