首页 > 解决方案 > Pyspark是否默认缓存数据帧?

问题描述

如果我在 pyspark 中读取文件:

Data = spark.read(file.csv)

然后在火花会话的生命周期内,“数据”在内存中可用,对吗?因此,如果我调用 data.show() 5 次,它将不会从磁盘读取 5 次。这是正确的吗?如果是,我为什么需要:

Data.cache()

标签: pythonapache-sparkcachingpyspark

解决方案


如果我在 pyspark 中读取文件: Data = spark.read(file.csv) 那么在 spark 会话的整个生命周期中,“数据”在内存中可用,对吗?

不,Spark 惰性评估在这里没有任何反应,这在您的情况下第一次调用时发生show()

因此,如果我调用 data.show() 5 次,它将不会从磁盘读取 5 次。这是正确的吗?

不会。每次调用都会重新评估数据框show。缓存数据帧将阻止重新评估,而是强制从缓存中读取数据。


推荐阅读