强制缓存/持久化的方法之一是在缓存/持久化之后调用操作,例如:
df.cache().count()
正如这里提到的:在spark流媒体中,我必须在cache()或persist()之后调用count(),以强制缓存/持久化真正发生吗?
问题:
有什么区别吗 take(1)
被调用而不是 count()
? 整个Dataframe是否会被缓存到内存和/或磁盘中 take(1)
是否已使用?
我注意到了 df.cache().take(1)
是更快,但我的意图只是实现。
强制缓存/持久化的方法之一是在缓存/持久化之后调用操作,例如:
df.cache().count()
正如这里提到的:在spark流媒体中,我必须在cache()或persist()之后调用count(),以强制缓存/持久化真正发生吗?
问题:
有什么区别吗 take(1)
被调用而不是 count()
? 整个Dataframe是否会被缓存到内存和/或磁盘中 take(1)
是否已使用?
我注意到了 df.cache().take(1)
是更快,但我的意图只是实现。
1条答案
按热度按时间xqk2d5yq1#
如果你使用
take(1)
,然后它将只计算Dataframe的一部分,而不是整个Dataframe-这就是为什么count
更常用的是,尽管可以使用任何其他计算整个Dataframe的操作。这个案例在databrick网站上免费提供的learning spark book的第二版中特别提到。