pyspark dataframe-force eager dataframe cache-take(1)vs count()

7ajki6be  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(632)

强制缓存/持久化的方法之一是在缓存/持久化之后调用操作,例如:

df.cache().count()

正如这里提到的:在spark流媒体中,我必须在cache()或persist()之后调用count(),以强制缓存/持久化真正发生吗?
问题:
有什么区别吗 take(1) 被调用而不是 count() ? 整个Dataframe是否会被缓存到内存和/或磁盘中 take(1) 是否已使用?
我注意到了 df.cache().take(1) 是更快,但我的意图只是实现。

xqk2d5yq

xqk2d5yq1#

如果你使用 take(1) ,然后它将只计算Dataframe的一部分,而不是整个Dataframe-这就是为什么 count 更常用的是,尽管可以使用任何其他计算整个Dataframe的操作。
这个案例在databrick网站上免费提供的learning spark book的第二版中特别提到。

相关问题