2017-07-31 81 views
1

我在DataFrame上调用cache(),我认为它完全缓存成功,因为在Spark UI中,我可以看到存储选项卡中的Frsction缓存字段为100%。但同时我看到磁盘上的大小不为零。Spark缓存:缓存为100%,而磁盘上的大小不为零,为什么?

请注意,我在群集(> 60GB)中有足够的内存,DataFrame大小为37GB,但我看到4.7GB保存在磁盘上。

这里是我所看到的屏幕截图:

enter image description here

我不知道为什么/时,这种情况下会发生什么?

P.S.我在EMR 5.0上使用Spark 2.0.0

+0

对不起,删除我的评论。我的第一条评论是如果你已经为Spark分配了足够的内存。现在,你可以尝试'persist(MEMORY_ONLY)'并查看输出是否有区别? – philantrovert

回答

1

因此,与RDD不同,数据集(以及我猜的DataFrame也)默认保留为MEMORY_AND_DISK

这里的源代码:Dataset.scala

谢谢你问这个问题。我不知道。 :D