apache-spark - 如何在 Spark 中对数据进行最佳分区以实现最佳处理
问题描述
我正在使用一个 40 节点 EMR 集群,每个节点有 16 个内核,内存为 1TB,我正在处理的数据接近 70GB-80GB。
我正在对输入数据帧进行重新分区,以便每个执行者可以处理相同的数据块,但是重新分区没有正确进行,90% 的繁重工作由 1-2 个执行者完成,其余的执行者正在享受只有 MB 的数据即使我没有明确使用重新分区并允许 spark 这样做,分区中的偏度仍然存在
我应该在我的 spark 代码中带来什么变化,以便每个执行程序获得几乎相等数量的数据进行处理,并且可以减少偏度。
解决方案
推荐阅读
- python - 使用 Dask 将中间体和结果写入文件
- python-2.7 - Python 日志记录添加了额外的处理程序
- bash - 在 bash 中更改循环的输出
- pointers - 在 C++ 中取消引用 nullptr 警告
- java - Java - 无法使用 selenium 获得最新的 Edge/Chromium 版本
- c# - ComboBox SelectedIndexChanged 事件未触发
- node.js - Viber Bot 从缓冲区发送文件
- algorithm - NN 与贪婪搜索
- python - 在文本文件中搜索和替换字符串
- r - 如何更改 scale_fill_gradient2 的图例标题?