即使我没有用户持久化或缓存,我的spark应用程序也会在内存存储中显示非零数量。即使我不使用persist / cache,spark也会缓存我的数据吗?
Spark优化有可能试图将较小的数据集“广播”给每个工作人员,以节省网络使用率。
引自Scaladocs
广播变量。广播变量允许程序员保留在每台计算机上缓存的只读变量,而不是交付带有任务的副本。例如,它们可以用于以有效方式将大型输入数据集的副本节点化。火花还尝试使用有效的广播算法来分配广播变量,以降低通信成本。
此外,在内存中改组将花费您的RAM。
引自Medium
内部,单个地图任务的结果会保留在内存中,直到他们不适合。然后,根据目标分区对它们进行排序并写入单个文件。在减少方面,任务阅读相关的已排序块。