Python Pyspark:需要了解Pyspark中缓存的行为
我想了解Python Pyspark:需要了解Pyspark中缓存的行为,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我想了解pyspark df.cache()与df=df.cache()有什么不同吗 是否绝对有必要在程序执行结束时取消持久化缓存的数据帧,我了解spark基于(最近使用最少的机制)清除它,如果我不取消持久化数据帧,会有什么负面影响,我可以考虑内存不足问题,但需要输入 当我使用df=df.cache()时,程序的重新执行是否可能使用旧的缓存数据,而不是重新计算和覆盖缓存的数据帧 不需要在最后取消持久性。停止spark将清除缓存的数据帧。 您不能从一个火花执行持续到另一个火花执行。如果您想从
pyspark
df.cache()
与df=df.cache()
有什么不同吗
df=df.cache()
时,程序的重新执行是否可能使用旧的缓存数据,而不是重新计算和覆盖缓存的数据帧
不需要在最后取消持久性。停止spark将清除缓存的数据帧。
您不能从一个火花执行持续到另一个火花执行。如果您想从一个火花“持续”到另一个火花,唯一的解决方案是物理保存数据(写入),并在下次执行时再次读取数据。这是否回答了您的问题?非常感谢@Steven,它澄清了我的大部分概念,请你也解释一下第2点,我对unpersist的用法有点困惑。我已经缓存了一些数据帧,如果我在程序执行结束时不撤销它们,然后重新运行程序,旧的缓存数据帧会被覆盖并存储在相同的内存空间中,还是会占用新的内存空间(考虑到它不是基于推出的LRU)。有没有可能spark在重新执行程序时根本不计算数据帧,因为它已经可以在缓存内存中找到它。