Spark 1.6如何计算分区值

时间:2019-12-05 18:48:01

标签: apache-spark

在什么基础上根据数据大小或其他来计算重分配(值)?

如果假设在特定数据框中有1亿条记录,那么我们在重新分区中必须赋予什么值?以及如何计算值?

1 个答案:

答案 0 :(得分:0)

没有人能确切告诉您您需要多少个分区。最佳记录数取决于记录数,每个记录的大小以及您要如何处理。

我建议从200(默认值spark.sql.shuffle.partitions)开始,检查内存是否有问题,并检查Spark UI中的任务持续时间和峰值执行内存。根据您的发现增加或减少分区数。您可能还需要运行一些简单的基准测试。确保您拥有的分区数总是多于#executors*cores_per_executors

请注意,如果根据数据大小进行value的操作,则需要查询两次数据,大多数情况下不需要这样做,有时这是有道理的(如果工作负载差异很大)。通常,这可以通过粗略的近似值来更改(基于查询的输入参数,即是否为(初始)满负荷,更新作业等