我与7个执行者一起工作,我做了persist(StorageLevel.MEMORY_ONLY_SER)
。
当我在Spark UI上查看存储选项卡时。我可以看到1180 MB RDD持续存在 当我更深入地挖掘时,我发现这1.1 GB没有均匀分布。 1个执行器有630 MB,1个有320 MB,1个有230 MB,其余为0 MB。
我想到了跨数据传播,即所谓的repartition(7)
。
现在,这些相同的数据平均分布在整个群集中,每个群集都有250 MB(大约)。这就是1750 MB。
以前,相同的Dataframe占用了1.1 GB的空间,重新分区后进行了缓存,占用了1.7 GB的空间。
您能帮助我理解这一点吗?