强制缓存/持久化的方法之一是在缓存/持久化之后调用一个操作,例如:
df.cache().count()
问题:
如果调用 take(1)
而不是 count()
有什么区别吗?使用 take(1)
时,整个数据帧是否会缓存到内存和/或磁盘中?
我注意到 df.cache().take(1)
更快,但我的目的只是实现急切的缓存。
最佳答案
如果您使用 take(1)
,那么它将仅评估数据帧的一部分,而不是整个数据帧 - 这就是为什么 count
更常用,尽管任何可以使用评估整个数据帧的其他操作。
Learning Spark第二版书中特别提到了这个案例,即freely available from Databrick's site .
关于apache-spark - PySpark DataFrame - 强制急切的数据帧缓存 - take(1) 与 count(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63404399/