Memory Spark作业服务器释放内存

Memory Spark作业服务器释放内存,memory,apache-spark,spark-jobserver,Memory,Apache Spark,Spark Jobserver,我已经在独立模式下设置了spark作业服务器(请参阅) 我已经创建了一个要使用的默认上下文。目前我在这方面有两种工作: 与其他服务器的同步: 从其他服务器的数据库转储数据 执行一些连接,减少数据,生成新的DF 将获取的DF保存在拼花文件中 将此拼花地板文件作为临时表加载并缓存 查询:对缓存的表执行sql查询 我保存的唯一对象是将被缓存的最终表 我不明白的是,为什么当我执行同步时,所有分配的内存都会被使用并且永远不会释放,但是,如果我直接加载拼花文件(使用先前生成的拼花文件重新启动服务器)

我已经在独立模式下设置了spark作业服务器(请参阅)

我已经创建了一个要使用的默认上下文。目前我在这方面有两种工作:

  • 与其他服务器的同步:
    • 从其他服务器的数据库转储数据
    • 执行一些连接,减少数据,生成新的DF
    • 将获取的DF保存在拼花文件中
    • 将此拼花地板文件作为临时表加载并缓存
  • 查询:对缓存的表执行sql查询
我保存的唯一对象是将被缓存的最终表

我不明白的是,为什么当我执行同步时,所有分配的内存都会被使用并且永远不会释放,但是,如果我直接加载拼花文件(使用先前生成的拼花文件重新启动服务器),那么只会使用一小部分内存

我错过了什么?有没有办法释放未使用的内存


谢谢

您可以通过取消持久化缓存表来释放内存:
yourTable.unpersist()