内存中缓存的DataFrame大小如何影响Apache Spark中的处理时间?

时间:2019-03-05 09:55:32

标签: apache-spark

我正在尝试,在不影响Spark中Job的整体处理时间的情况下,可以缓存的最大原始数据是多少。

Spark群集-2台计算机,12核,96GB Ram。我创建了12个工作线程,每个工作线程都有1个Core和8GB Ram。

我已经缓存了约2.4GB的实木复合地板,这在RAM上造成了约5.4GB的内存占用。完成简单任务大约需要8秒钟(计数-> GroupBY->收集)。

我再次缓存了6个类似的文件,每个文件区约2.4GB,创建的总内存约为30GB。再次对已加载的5.4GB缓存数据帧执行相同的任务(计数-> GroupBY->收集),耗时约12秒。

数据是每个文件中约300列的(date,timestamp,string,double)字段的混合。

已尝试-

案例1-执行者总数-4,每个执行者核心-3个核心,每个执行者内存24GB

第2种情况-执行器总数-6个,每个执行器核心数-2个核心,每个执行器内存16GB

第3种情况-执行器总数-12个,每个执行器核心数-1个核心,每个执行器内存8GB

案例3 给我最好的结果。

这是正确的火花行为吗?

Spark v2.0.2

0 个答案:

没有答案