python - Pyspark是否默认缓存数据帧?
问题描述
如果我在 pyspark 中读取文件:
Data = spark.read(file.csv)
然后在火花会话的生命周期内,“数据”在内存中可用,对吗?因此,如果我调用 data.show() 5 次,它将不会从磁盘读取 5 次。这是正确的吗?如果是,我为什么需要:
Data.cache()
解决方案
如果我在 pyspark 中读取文件:
Data = spark.read(file.csv)
那么在 spark 会话的整个生命周期中,“数据”在内存中可用,对吗?
不,Spark 惰性评估在这里没有任何反应,这在您的情况下第一次调用时发生show()
。
因此,如果我调用 data.show() 5 次,它将不会从磁盘读取 5 次。这是正确的吗?
不会。每次调用都会重新评估数据框show
。缓存数据帧将阻止重新评估,而是强制从缓存中读取数据。
推荐阅读
- postgresql - 更快地找到不同的值
- ruby-on-rails - form_tag:在 params[] 中保留许多 text_filed_tag 的值
- javascript - 当类的实例在 js 中需要不同的函数和变量时,有什么更好的方法?
- jmeter - 从 JMX 文件中删除密码纯文本
- python - 处理附加文件和 od2trips 工具
- spring-batch - Spring批处理复杂条件流不起作用
- sql - Sql 我必须按列比较 Group 的聚合值
- google-cloud-platform - 在 GCP DatafLow 中读取自定义输入文件(ldif)类型/格式
- html - 多个功能模式在单个页面上处于活动状态
- c# - 为什么即使在升级到 .net 5 之后,我仍然会收到“未定义的预定义类型 IsExternalInit”?