Apache spark Spark如何在本地模式下处理内存?
我试图了解Spark(2.1.1)如何在本地模式下处理内存 据我所知,当我用Apache spark Spark如何在本地模式下处理内存?,apache-spark,Apache Spark,我试图了解Spark(2.1.1)如何在本地模式下处理内存 据我所知,当我用--驾驶员记忆3g启动spark shell时: 预留了300MB 使用60%(默认值为spark.memory.fraction) 其余部分在执行和存储之间共享—1.7GB 据推测,spark shell和spark UI也共享了其中的一些功能 看看正在运行的进程,我看到spark shell的java.exe进程在重新启动后使用了大约1GB的RAM 如果我随后使用以下命令读取900MB CSV文件: val数据:
--驾驶员记忆3g
启动spark shell时:
- 预留了300MB
- 使用60%(默认值为
) 其余部分在执行和存储之间共享—1.7GBspark.memory.fraction
val数据:DataFrame=spark.read.option(“header”,value=true).csv(“data.csv”)
然后反复调用data.count
,我可以看到java.exe进程每次都在缓慢上升,直到它的RAM容量达到2GB左右
有几个问题:
data.count的后续调用会发生什么?很明显,它在以前的通话中占用了更多的内存,那么为什么一旦达到上限就不需要更多的内存呢