【问题标题】:DataFrame Lifespan in memory, Spark?内存中的 DataFrame 寿命,Spark?
【发布时间】:2020-09-03 20:28:58
【问题描述】:

我的问题与内部sprak中的内存管理和GC有关。

如果我要创建一个 RDD,它将在我的 Executor 内存中保留多长时间。

# Program Starts
spark = SparkSession.builder.appName("").master("yarn").getOrCreate()
df = spark.range(10)
df.show()
# other Operations
# Program end!!!
  1. 一旦我的执行完成,它会被自动删除吗?如果是,有什么办法可以在程序执行过程中手动删除。
  2. 如何以及何时在 Spark 中调用垃圾收集。我们能否像 JAVA 程序一样实现自定义 GC 并在 Spark 中使用它。

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql databricks


    【解决方案1】:
    【解决方案2】:

    “它将在我的 Executor 内存中保留多长时间。”

    在这种特殊情况下,spark 永远不会实现完整的数据集,而是会一个一个地迭代。只有少数操作员实现了完整的数据集。这包括,sorts/joins/groupbys/writes/etc

    “我的执行完成后会自动删除吗?”

    spark 会自动清理任何临时数据。

    “如果是,有什么办法可以在程序执行过程中手动删除。”

    spark 仅在其正在使用或已手动保留时保留该数据。你特别想完成什么?

    “如何以及何时在 Spark 中调用垃圾收集。”

    Spark 在 JVM 上运行,并且 JVM 在达到某些指标时会自动进行 GC。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      • 2011-03-29
      • 2013-10-12
      • 2010-12-04
      • 2012-01-18
      • 1970-01-01
      相关资源
      最近更新 更多