首页 > 解决方案 > 如何在 Spark 中对数据进行最佳分区以实现最佳处理

问题描述

我正在使用一个 40 节点 EMR 集群,每个节点有 16 个内核,内存为 1TB,我正在处理的数据接近 70GB-80GB。

我正在对输入数据帧进行重新分区,以便每个执行者可以处理相同的数据块,但是重新分区没有正确进行,90% 的繁重工作由 1-2 个执行者完成,其余的执行者正在享受只有 MB 的数据即使我没有明确使用重新分区并允许 spark 这样做,分区中的偏度仍然存在

我应该在我的 spark 代码中带来什么变化,以便每个执行程序获得几乎相等数量的数据进行处理,并且可以减少偏度。

标签: apache-sparkpyspark

解决方案


推荐阅读