gpt4 book ai didi

apache-spark - df.cache()存放在哪里

转载 作者:行者123 更新时间:2023-12-03 17:05:09 27 4
gpt4 key购买 nike

我想了解以下代码存储在哪个节点(驱动程序或工作程序/执行程序)中

df.cache() //df is a large dataframe (200GB)

并具有更好的性能:使用sql cachetablecache()。我的理解是,其中一个很懒,另一个很热心。

最佳答案

df.cache()调用persist()方法,该方法在存储级别存储为MEMORY_AND_DISK,但是您可以更改存储级别
persist()方法调用
sparkSession.sharedState.cacheManager.cacheQuery()
当您看到cacheTable的代码时,它也会调用相同的代码
sparkSession.sharedState.cacheManager.cacheQuery()

这意味着两者相同并且被懒惰地评估(仅在执行操作后才评估),除了persist方法可以存储为提供的存储级别,这些是可用的存储级别

  • DISK_ONLY
  • DISK_ONLY_2
  • MEMORY_ONLY
  • MEMORY_ONLY_2
  • MEMORY_ONLY_SER
  • MEMORY_ONLY_SER_2
  • MEMORY_AND_DISK
  • MEMORY_AND_DISK_2
  • MEMORY_AND_DISK_SER
  • MEMORY_AND_DISK_SER_2
  • OFF_HEAP

  • 您还可以使用SQL CACHE TABLE,它不会进行延迟计算并将整个表存储在内存中,这也可能导致 OOM
    摘要:对cache()persist()cacheTable()进行了延迟评估,因此需要执行一项操作才能工作,因为 SQL CACHE TABLE迫切需要

    看到这里 details!

    您可以根据需要选择!

    希望这可以帮助!

    关于apache-spark - df.cache()存放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45558868/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com