Apache spark 为什么Spark';一段时间后,从文件中读取的速度有多快?

Apache spark 为什么Spark';一段时间后,从文件中读取的速度有多快?,apache-spark,rdd,Apache Spark,Rdd,Spark在洗牌后在磁盘上实现其结果。在运行一个实验时,我看到Spark读取任务在1ms内实现了65MB的数据(有些任务甚至显示在0ms内读取数据:)。我的问题是Spark如何能如此快速地从硬盘读取数据?它实际上是从文件还是从内存中读取这些数据 由@zero323在states上向磁盘写入的答案是随机文件。这并不意味着洗牌后的数据不会保存在内存中。但我找不到任何官方的Spark来源,说Spark会将洗牌输出保存在内存中,这是下一个任务读取时首选的 是从磁盘或内存(如果是从内存中,如果有人能指出官

Spark在洗牌后在磁盘上实现其结果。在运行一个实验时,我看到Spark读取任务在1ms内实现了65MB的数据(有些任务甚至显示在0ms内读取数据:)。我的问题是Spark如何能如此快速地从硬盘读取数据?它实际上是从文件还是从内存中读取这些数据

由@zero323在states
上向磁盘写入的答案是随机文件。这并不意味着洗牌后的数据不会保存在内存中。
但我找不到任何官方的Spark来源,说Spark会将洗牌输出保存在内存中,这是下一个任务读取时首选的


是从磁盘或内存(如果是从内存中,如果有人能指出官方来源,我将不胜感激)读取shuffle输出的Spark任务。

Spark shuffle输出被写入磁盘。您可以在性能影响主题中找到此信息

  • Shuffle还会在磁盘上生成大量中间文件。 从Spark 1.3开始,这些文件将一直保留到 相应的RDD不再使用,并被垃圾收集

  • 这样做的目的是,如果 血统被重新计算。垃圾收集只能在 如果应用程序保留对这些RDD的引用,则为长时间 或者如果GC不经常启动

  • 这意味着长时间运行的Spark作业可能会消耗大量的内存 磁盘空间


我不反对Spark将其后台输出写入文件。我的问题是,下一阶段是从这些文件中读取,还是直接从内存中的数据中读取。